summaryrefslogtreecommitdiff
path: root/python
Commit message (Collapse)AuthorAgeFilesLines
...
* python: fix a return type annotation.Nick Mathewson2024-10-171-1/+1
| | | | (Found while writing a test.)
* rpc-tests: Resolve unused variable/import warnings.Nick Mathewson2024-10-103-6/+2
|
* rpc-tests: Avoid 'import *'Nick Mathewson2024-10-101-1/+1
|
* rpc-tests: Reformat using "black".Nick Mathewson2024-10-106-10/+20
| | | | | (This is all on the theory that any formatting standard is better than none.)
* rpc-tests: Use argparse to parse cli.Nick Mathewson2024-10-102-9/+32
| | | | | | Right now, we only support two things in the CLI: overriding ARTI_RPC_TEST_DIR, and passing additional arguments to arti_rpc_tests.
* rpc-tests: Rename setup.py to context.pyNick Mathewson2024-10-103-7/+7
|
* rpc-tests: Use a decorator instead of a magic function nameNick Mathewson2024-10-103-4/+16
|
* rpc-tests: Use __init__ instead of weird staticmethod.Nick Mathewson2024-10-102-6/+2
|
* rpc-tests: Format config file correctly for Toml.Nick Mathewson2024-10-101-16/+16
| | | | | | | | | | | | We use the `tomli_w` package to generate reasonable toml output, instead of trying to use `str.format`. Without this, there's not an easy way to tell string.Formatter to convert Path('/abc/"def"') to `"abc/\"def\""`. Something like this would be necessary even if we weren't using Path, since the toml rules for sring encoding aren't the same as produced by Python's repr(), which we were using before.
* rpc-integration: Use Path instead of str.Nick Mathewson2024-10-102-12/+15
|
* Start a set of integration tests in pythonNick Mathewson2024-10-108-0/+479
| | | | | | | | These tests are loosely modeled after stem's test suite for Tor and the Tor control port. They're meant to exercise Arti, Arti RPC, and the Arti RPC client library. (For now, they exercise very little.)
* python: Note two methods which will need new argsNick Mathewson2024-10-101-0/+2
|
* python: Use mypy option for cleaner code wrt rebinding.Nick Mathewson2024-10-031-11/+24
|
* python: Fix annotation typo.Nick Mathewson2024-10-031-1/+1
|
* python: Remove TODO about WinDLLNick Mathewson2024-10-031-5/+0
| | | | | | @opara says that we'll want to have our API functions be `extern "C"` everywhere, and so `ctypes.CDLL` should work fine for them on Windows. This sounds good to me.
* python: annotate CDLL-related functionsNick Mathewson2024-10-031-16/+11
| | | | This, incidentally, turned up a repeated mistake in the code.
* python: Remove todos about annotating "params"Nick Mathewson2024-10-031-2/+0
| | | | | Since params can be "anything encodeable to json", there isn't a lot of point in restricting its type.
* python: Prefer Optional over Union.Nick Mathewson2024-10-031-4/+4
|
* python: Type-annotate rpc.pyNick Mathewson2024-10-012-38/+66
| | | | | | | | | | | | | | | This has required a few code changes and turned up a few bugs. The type annotations pass with `mypy`. Notable code changes: With type annotations, variable assignment may no longer change the type of a variable. (I disagree with these semantics, but here we are.) Note that some TODOs remain: I have no clear sense how to annotate the library type from `ctypes`, and better wrappers are needed in some cases.
* python: Add minimal annotations for "mypy" to pass.Nick Mathewson2024-10-011-4/+6
|
* Python: Use the correct library extension on osx, windows.Nick Mathewson2024-09-301-2/+11
| | | | (The windows case is untested; the osx case worked fine.)
* python/arti_rpc: Add an initial pyproject.tomlNick Mathewson2024-09-261-0/+23
| | | | | I've tried "python -m build" to make sure it works; haven't tested anything else.
* python: Move arti_rpc package into new subdirectoryNick Mathewson2024-09-265-1/+3
| | | | | This will make it easier to add other Python packages in the future as needed.
* python: in README, prepend to PYTHONPATH.Nick Mathewson2024-09-261-2/+1
|
* Python: Readme fixes from @anonymNick Mathewson2024-09-261-3/+3
| | | Thanks: Anonym
* Add a scary README to the Python directoryNick Mathewson2024-09-261-0/+47
|
* Python: Add a quick RPC demo to show how the APIs work.Nick Mathewson2024-09-261-0/+24
|
* Python: Add a pythonic wrapper for arti-rpc-client-coreNick Mathewson2024-09-262-0/+339
| | | | | This module tries to provide a set of APIs more closely resembling those you'd expect to use in a real python program.
* Python: Add a ctypes wrapper for arti-rpc-client-coreNick Mathewson2024-09-261-0/+191
This wrapper uses Python's `ctypes` module to wrap the APIs from `arti-rpc-client-core`. It needs more work on Windows (and likely MacOS too), but that will come later. This is not a suitable API for direct use in Python.