Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
67a137e
Implement _collections.OrderedDict
moreal Sep 22, 2026
dc8e92d
Add OrderedDict, warnings source lines, and socket sendmsg
youknowone Sep 21, 2026
182ad24
Load marshal via readinto and dump sets in dumps order
youknowone Sep 21, 2026
d8be145
Add classmethod_descriptor and ABC IS_ABSTRACT flags
youknowone Sep 22, 2026
6867000
address review: odict reuse, descr call, new wrapper
youknowone Sep 22, 2026
58791c4
Represent chflags bits with bitflagset
youknowone Sep 22, 2026
1fe22ce
Represent access and mode bits with bitflagset
youknowone Sep 22, 2026
3de8a8f
Continue unfinished REPL suites as incomplete input
youknowone Sep 22, 2026
f63b772
Add pickle and os.stat inspect signatures
youknowone Sep 22, 2026
44a1cf5
Add Unpickler, dump/load, and lstat signatures
youknowone Sep 22, 2026
a3fb270
Complete OrderedDict with insertion-order links
youknowone Sep 22, 2026
ce35d46
address CI: stat casts, HCI_DATA_DIR, passing xfails
youknowone Sep 22, 2026
498dae1
Fix wasm teardown deadlock and bluetooth constants
youknowone Sep 22, 2026
38909e2
Clear process-wide eval breaker bits in STW test
youknowone Sep 22, 2026
fdce5f2
Drop exclusive-held panic that tripped wasm clippy
youknowone Sep 22, 2026
0c38852
Fix OrderedDict contains and export Windows BDADDR
youknowone Sep 22, 2026
fddfe4b
Add cmp_to_key and hash-once LRU cache
youknowone Sep 23, 2026
305a502
Allow subclass keywords on list, tuple, and float
youknowone Sep 23, 2026
56a912f
Fix CI lint, test re-export, and structseq members
youknowone Sep 23, 2026
e47a535
Allow subclass keywords on itertools and filter
youknowone Sep 23, 2026
c7b6022
Remove text_signature derive parameter
youknowone Sep 23, 2026
5976f3a
Rename set contains_method to __contains__
youknowone Sep 23, 2026
207fa0b
Use MonitoringEvent instead of EVENT_* aliases
youknowone Sep 23, 2026
4cfcd7f
Store warnings filters as PyListRef
youknowone Sep 23, 2026
16c6d77
Re-export clear_eval_breaker_for_test after rebase
youknowone Sep 23, 2026
dc10fca
Fix groupby reentrancy and islice arguments
youknowone Sep 23, 2026
0d0c26f
SETREF warnings filters, onceregistry, and defaultaction
youknowone Sep 23, 2026
af31e63
Iterate OrderedDict inner dict via next_entry
youknowone Sep 23, 2026
299879d
Remove expectedFailure from testBluetoothConstants
youknowone Sep 23, 2026
277a5f5
Borrow get_filter arguments as PyObject
youknowone Sep 23, 2026
acd78e7
Fix bool slots and SemHandle safety docs
youknowone Sep 23, 2026
ac2e463
Keep sendmsg errors and drop duplicate linecache
youknowone Sep 24, 2026
1234e88
Nest REPL parse or-patterns for clippy
youknowone Sep 24, 2026
15f3bf4
Mark pydoc os.stat signature test expectedFailure
youknowone Sep 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
address CI: stat casts, HCI_DATA_DIR, passing xfails
Compare stat permission bits as Mode so Linux clippy does not
flag a u32-to-u32 cast. Export HCI_DATA_DIR with the Bluetooth
socket option values. Drop expectedFailure from tests that now
pass.

Assisted-by: Grok:grok-4.6
  • Loading branch information
youknowone committed Sep 24, 2026
commit ce35d4626e744f65d01a8b3b906712c0edf0130c
1 change: 0 additions & 1 deletion Lib/test/test_abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,6 @@ def method_two(self):
msg = r"class C without an implementation for abstract methods 'method_one', 'method_two'"
self.assertRaisesRegex(TypeError, msg, C)

@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: False is not true
def test_abstractmethod_integration(self):
for abstractthing in [abc.abstractmethod, abc.abstractproperty,
abc.abstractclassmethod,
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_dataclasses/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5000,7 +5000,6 @@ class Date(Ordered):
self.assertFalse(inspect.isabstract(Date))
self.assertGreater(Date(2020,12,25), Date(2020,8,31))

@unittest.expectedFailure # TODO: RUSTPYTHON
def test_maintain_abc(self):
class A(abc.ABC):
@abc.abstractmethod
Expand Down
3 changes: 0 additions & 3 deletions Lib/test/test_pydoc/test_pydoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -1573,7 +1573,6 @@ def test_bound_builtin_method(self):
"dump(obj, /) method of _pickle.Pickler instance")

# this should *never* include self!
@unittest.expectedFailure # TODO: RUSTPYTHON
@requires_docstrings
def test_module_level_callable(self):
self.assertEqual(self._get_summary_line(os.stat),
Expand Down Expand Up @@ -1994,7 +1993,6 @@ def test_text_doc_routines_in_class(self, cls=pydocfodder.B):
self.assertIn(' | B_classmethod(x)', lines)
self.assertIn(' | B_classmethod_alias = B_classmethod(x)', lines)

@unittest.expectedFailure # TODO: RUSTPYTHON
def test_html_doc_routines_in_class(self, cls=pydocfodder.B):
doc = pydoc.HTMLDoc()
result = doc.docclass(cls)
Expand Down Expand Up @@ -2033,7 +2031,6 @@ def test_html_doc_routines_in_class(self, cls=pydocfodder.B):
def test_text_doc_inherited_routines_in_class(self):
self.test_text_doc_routines_in_class(pydocfodder.D)

@unittest.expectedFailure # TODO: RUSTPYTHON
def test_html_doc_inherited_routines_in_class(self):
self.test_html_doc_routines_in_class(pydocfodder.D)

Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_re.py
Original file line number Diff line number Diff line change
Expand Up @@ -2939,7 +2939,6 @@ def test_disallow_instantiation(self):
pat = re.compile("")
check_disallow_instantiation(self, type(pat.scanner("")))

@unittest.expectedFailure # TODO: RUSTPYTHON
def test_deprecated_modules(self):
deprecated = {
'sre_compile': ['compile', 'error',
Expand Down
2 changes: 0 additions & 2 deletions Lib/test/test_repl.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,6 @@ def test_interactive_traceback_reporting(self):
]
self.assertEqual(traceback_lines, expected_lines)

@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: 101 != 0
def test_interactive_traceback_reporting_multiple_input(self):
user_input1 = dedent("""
def foo(x):
Expand Down Expand Up @@ -308,7 +307,6 @@ def test_runsource_show_syntax_error_location(self):
]
self.assertEqual(output.splitlines()[4:-1], expected_lines)

@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: 101 != 0
def test_interactive_source_is_in_linecache(self):
user_input = dedent("""
def foo(x):
Expand Down
2 changes: 0 additions & 2 deletions Lib/test/test_trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,6 @@ def _coverage(self, tracer, cmd=DEFAULT_SCRIPT):
r = tracer.results()
r.write_results(show_missing=True, summary=True, coverdir=TESTFN)

@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: 'pprint.py' not found in ''
@requires_resource('cpu')
def test_coverage(self):
tracer = trace.Trace(trace=0, count=1)
Expand All @@ -400,7 +399,6 @@ def test_coverage_ignore(self):
files = os.listdir(TESTFN)
self.assertEqual(files, ['_importlib.cover']) # Ignore __import__

@unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: 'test.tracedmodules.testmod' not found in {}
def test_issue9936(self):
tracer = trace.Trace(trace=0, count=1)
modname = 'test.tracedmodules.testmod'
Expand Down
2 changes: 0 additions & 2 deletions Lib/test/test_zipfile/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -3551,7 +3551,6 @@ def test_read_zip_with_exe_prepended(self):
def test_read_zip64_with_exe_prepended(self):
self._test_zip_works(self.exe_zip64)

@unittest.expectedFailure # TODO: RUSTPYTHON
@unittest.skipUnless(sys.executable, 'sys.executable required.')
@unittest.skipUnless(os.access('/bin/bash', os.X_OK),
'Test relies on #!/bin/bash working.')
Expand All @@ -3560,7 +3559,6 @@ def test_execute_zip2(self):
output = subprocess.check_output([self.exe_zip, sys.executable])
self.assertIn(b'number in executable: 5', output)

@unittest.expectedFailure # TODO: RUSTPYTHON
@unittest.skipUnless(sys.executable, 'sys.executable required.')
@unittest.skipUnless(os.access('/bin/bash', os.X_OK),
'Test relies on #!/bin/bash working.')
Expand Down
1 change: 0 additions & 1 deletion Lib/test/test_zoneinfo/test_zoneinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -1866,7 +1866,6 @@ def test_env_variable_relative_paths(self):
with self.subTest("filtered", path_var=path_var):
self.assertSequenceEqual(tzpath, expected_paths)

@unittest.expectedFailure # TODO: RUSTPYTHON; + /home/runner/work/RustPython/RustPython/crates/pylib/Lib/test/test_zoneinfo/test_zoneinfo.py
def test_env_variable_relative_paths_warning_location(self):
path_var = "path/to/somewhere"

Expand Down
11 changes: 11 additions & 0 deletions crates/stdlib/src/socket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,17 @@ mod _socket {
target_os = "openbsd"
))]
#[pyattr]
const HCI_DATA_DIR: i32 = 1;
#[cfg(target_os = "freebsd")]
#[pyattr]
const HCI_DATA_DIR: i32 = 2;
#[cfg(any(
target_os = "android",
target_os = "fuchsia",
target_os = "linux",
target_os = "openbsd"
))]
#[pyattr]
const SOL_L2CAP: i32 = 6;
#[cfg(target_os = "freebsd")]
#[pyattr]
Expand Down
30 changes: 15 additions & 15 deletions crates/vm/src/stdlib/_stat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,21 +170,21 @@ mod _stat {
pub const S_IEXEC: Mode = S_IXUSR;

const _: () = {
assert!(S_IXOTH as u32 == 0o0001);
assert!(S_IWOTH as u32 == 0o0002);
assert!(S_IROTH as u32 == 0o0004);
assert!(S_IRWXO as u32 == 0o0007);
assert!(S_IXGRP as u32 == 0o0010);
assert!(S_IWGRP as u32 == 0o0020);
assert!(S_IRGRP as u32 == 0o0040);
assert!(S_IRWXG as u32 == 0o0070);
assert!(S_IXUSR as u32 == 0o0100);
assert!(S_IWUSR as u32 == 0o0200);
assert!(S_IRUSR as u32 == 0o0400);
assert!(S_IRWXU as u32 == 0o0700);
assert!(S_ISVTX as u32 == 0o1000);
assert!(S_ISGID as u32 == 0o2000);
assert!(S_ISUID as u32 == 0o4000);
assert!(S_IXOTH == 0o0001 as Mode);
assert!(S_IWOTH == 0o0002 as Mode);
assert!(S_IROTH == 0o0004 as Mode);
assert!(S_IRWXO == 0o0007 as Mode);
assert!(S_IXGRP == 0o0010 as Mode);
assert!(S_IWGRP == 0o0020 as Mode);
assert!(S_IRGRP == 0o0040 as Mode);
assert!(S_IRWXG == 0o0070 as Mode);
assert!(S_IXUSR == 0o0100 as Mode);
assert!(S_IWUSR == 0o0200 as Mode);
assert!(S_IRUSR == 0o0400 as Mode);
assert!(S_IRWXU == 0o0700 as Mode);
assert!(S_ISVTX == 0o1000 as Mode);
assert!(S_ISGID == 0o2000 as Mode);
assert!(S_ISUID == 0o4000 as Mode);
};

// Windows file attributes (if on Windows)
Expand Down