<div align="center">
<img src="https://raw.githubusercontent.com/jeertmans/DiffeRT/main/static/logo_250px.png" alt="DiffeRT logo"></img>
</div>
<div align="center">
# DiffeRT
[![Latest Release][pypi-version-badge]][pypi-version-url]
[![Python version][pypi-python-version-badge]][pypi-version-url]
[![Documentation][documentation-badge]][documentation-url]
[![Codecov][codecov-badge]][codecov-url]
</div>
## Usage
> **WARNING:**
> Until this package reaches version `0.1.x`, breaking changes
> should be expected. Checkout the [ROADMAP](./ROADMAP.md) for
> future features.
>
> If you have any suggestion regarding the development of this package,
> please open an [issue](https://github.com/jeertmans/DiffeRT/issues).
The easiest way to install DiffeRT is through pip:
```bash
pip install differt
```
We provide pre-built binaries for most platforms. If you want (or need)
to build the package from the source distribution, check out the
requirements below.
## Contributing
> **IMPORTANT:**
> The current documentation is very light and a more complete guide for
> new contributors will be written in the near future.
>
> Until then, do not hesitate to reach me for help with
> [GitHub issues](https://github.com/jeertmans/DiffeRT/issues)!
This project is built using both Python and Rust code, to provide an easy-to-use
but performant program. It also heavily uses the capabilities brought by
[JAX](https://github.com/google/jax) for numerical arrays.
### Requirements
To run build this package locally, you need:
- [Python 3.9](https://www.python.org/) or above;
- [Rust](https://www.rust-lang.org/) stable toolchain;
- `make` (e.g., GNU Make or Make for Windows);
- [Maturin](https://www.maturin.rs/) for building Python bindings from Rust code;
- and [Rye](https://rye-up.com/) to manage this project.
## Local development
The following commands assume that you installed
the project locally with:
```bash
rye sync
```
and that you activate the corresponding Python virtual environment:
```bash
. .venv/bin/activate # or .venv\Scripts\activate on Windows
```
### Documentation
To generate the documentation, please run the following:
```bash
cd docs
make html
```
Finally, you can open `build/html/index.html` to see the generated docs.
### Testing
Both Rust and Python codebases have their own tests and benchmarks.
#### Testing Rust code
You can very easily test you code using Cargo:
```bash
cargo test
```
or benchmark it:
```bash
cargo bench
```
#### Testing Python code
in the same way, you can very test you code with Pytest:
```bash
pytest
```
or benchmark it:
```bash
pytest --benchmark-only
```
[pypi-version-badge]: https://img.shields.io/pypi/v/DiffeRT?label=DiffeRT&color=blueviolet
[pypi-version-url]: https://pypi.org/project/DiffeRT/
[pypi-python-version-badge]: https://img.shields.io/pypi/pyversions/DiffeRT?color=orange
[documentation-badge]: https://readthedocs.org/projects/differt/badge/?version=latest
[documentation-url]: https://differt.readthedocs.io/latest/?badge=latest
[codecov-badge]: https://codecov.io/gh/jeertmans/DiffeRT/branch/main/graph/badge.svg?token=8P4DY9JCE4
[codecov-url]: https://codecov.io/gh/jeertmans/DiffeRT
Raw data
{
"_id": null,
"home_page": null,
"name": "DiffeRT",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "differentiable, jax, propagation, radio, ray tracing",
"author": null,
"author_email": "J\u00e9rome Eertmans <jeertmans@icloud.com>",
"download_url": "https://files.pythonhosted.org/packages/e6/0d/7ef653fd0c9d89d8bfa727f4b2a1e381bc5420c232ee4079d9f90e97c4a8/differt-0.0.11.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n<img src=\"https://raw.githubusercontent.com/jeertmans/DiffeRT/main/static/logo_250px.png\" alt=\"DiffeRT logo\"></img>\n</div>\n\n<div align=\"center\">\n\n# DiffeRT\n\n[![Latest Release][pypi-version-badge]][pypi-version-url]\n[![Python version][pypi-python-version-badge]][pypi-version-url]\n[![Documentation][documentation-badge]][documentation-url]\n[![Codecov][codecov-badge]][codecov-url]\n\n</div>\n\n## Usage\n\n> **WARNING:**\n> Until this package reaches version `0.1.x`, breaking changes\n> should be expected. Checkout the [ROADMAP](./ROADMAP.md) for\n> future features.\n>\n> If you have any suggestion regarding the development of this package,\n> please open an [issue](https://github.com/jeertmans/DiffeRT/issues).\n\nThe easiest way to install DiffeRT is through pip:\n\n```bash\npip install differt\n```\n\nWe provide pre-built binaries for most platforms. If you want (or need)\nto build the package from the source distribution, check out the\nrequirements below.\n\n## Contributing\n\n> **IMPORTANT:**\n> The current documentation is very light and a more complete guide for\n> new contributors will be written in the near future.\n>\n> Until then, do not hesitate to reach me for help with\n> [GitHub issues](https://github.com/jeertmans/DiffeRT/issues)!\n\nThis project is built using both Python and Rust code, to provide an easy-to-use\nbut performant program. It also heavily uses the capabilities brought by\n[JAX](https://github.com/google/jax) for numerical arrays.\n\n### Requirements\n\nTo run build this package locally, you need:\n\n- [Python 3.9](https://www.python.org/) or above;\n- [Rust](https://www.rust-lang.org/) stable toolchain;\n- `make` (e.g., GNU Make or Make for Windows);\n- [Maturin](https://www.maturin.rs/) for building Python bindings from Rust code;\n- and [Rye](https://rye-up.com/) to manage this project.\n\n\n## Local development\n\nThe following commands assume that you installed\nthe project locally with:\n\n```bash\nrye sync\n```\n\nand that you activate the corresponding Python virtual environment:\n\n```bash\n. .venv/bin/activate # or .venv\\Scripts\\activate on Windows\n```\n\n### Documentation\n\nTo generate the documentation, please run the following:\n\n```bash\ncd docs\nmake html\n```\n\nFinally, you can open `build/html/index.html` to see the generated docs.\n\n### Testing\n\nBoth Rust and Python codebases have their own tests and benchmarks.\n\n#### Testing Rust code\n\nYou can very easily test you code using Cargo:\n\n```bash\ncargo test\n```\n\nor benchmark it:\n\n```bash\ncargo bench\n```\n\n#### Testing Python code\n\nin the same way, you can very test you code with Pytest:\n\n```bash\npytest\n```\n\nor benchmark it:\n\n```bash\npytest --benchmark-only\n```\n\n[pypi-version-badge]: https://img.shields.io/pypi/v/DiffeRT?label=DiffeRT&color=blueviolet\n[pypi-version-url]: https://pypi.org/project/DiffeRT/\n[pypi-python-version-badge]: https://img.shields.io/pypi/pyversions/DiffeRT?color=orange\n[documentation-badge]: https://readthedocs.org/projects/differt/badge/?version=latest\n[documentation-url]: https://differt.readthedocs.io/latest/?badge=latest\n[codecov-badge]: https://codecov.io/gh/jeertmans/DiffeRT/branch/main/graph/badge.svg?token=8P4DY9JCE4\n[codecov-url]: https://codecov.io/gh/jeertmans/DiffeRT\n",
"bugtrack_url": null,
"license": null,
"summary": "Differentiable Ray Tracing Toolbox for Radio Propagation Simulations",
"version": "0.0.11",
"project_urls": {
"Changelog": "https://github.com/jeertmans/DiffeRT/releases",
"Documentation": "https://eertmans.be/DiffeRT",
"Founding": "https://github.com/sponsors/jeertmans",
"Homepage": "https://github.com/jeertmans/DiffeRT",
"Repository": "https://github.com/jeertmans/DiffeRT"
},
"split_keywords": [
"differentiable",
" jax",
" propagation",
" radio",
" ray tracing"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "511b792b31beca04738f00fed87bb1adecd9b0448675ddacd938981acc4bcd42",
"md5": "66127751e0aeb12593875d1397d6058b",
"sha256": "88e49437eceb88b6d2c3cb31df29cb5a8e22d203db751bd42cab4cce13155b46"
},
"downloads": -1,
"filename": "differt-0.0.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "66127751e0aeb12593875d1397d6058b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 2804,
"upload_time": "2024-05-03T09:11:12",
"upload_time_iso_8601": "2024-05-03T09:11:12.849896Z",
"url": "https://files.pythonhosted.org/packages/51/1b/792b31beca04738f00fed87bb1adecd9b0448675ddacd938981acc4bcd42/differt-0.0.11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e60d7ef653fd0c9d89d8bfa727f4b2a1e381bc5420c232ee4079d9f90e97c4a8",
"md5": "c8d64c53e874b18278e281771bee1a84",
"sha256": "aa2a6ddcf7eda5a1631a9542448d08a02b2c33f3584960f6021de1d0c1660a2d"
},
"downloads": -1,
"filename": "differt-0.0.11.tar.gz",
"has_sig": false,
"md5_digest": "c8d64c53e874b18278e281771bee1a84",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 26969,
"upload_time": "2024-05-03T09:11:14",
"upload_time_iso_8601": "2024-05-03T09:11:14.355976Z",
"url": "https://files.pythonhosted.org/packages/e6/0d/7ef653fd0c9d89d8bfa727f4b2a1e381bc5420c232ee4079d9f90e97c4a8/differt-0.0.11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-03 09:11:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jeertmans",
"github_project": "DiffeRT",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "differt"
}