Metadata-Version: 2.4
Name: feyngraph
Version: 0.1.0b2
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Dist: rich>=14.1.0,<15.0.0 ; extra == 'cli'
Requires-Dist: rich-argparse>=1.7.1,<2.0.0 ; extra == 'cli'
Requires-Dist: tomli>=2.2.1,<3.0.0 ; python_full_version < '3.11' and extra == 'cli'
Requires-Dist: jinja2>=3.1.6,<4.0.0 ; extra == 'cli'
Provides-Extra: cli
License-File: LICENSE
Summary: A modern Feynman diagram generator
Author: Jens Braun <j.braun@kit.edu>
Author-email: Jens Braun <j.braun@kit.edu>
License: MPL-2.0
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Repository, https://github.com/jens-braun/feyngraph
Project-URL: Documentation, https://jens-braun.github.io/FeynGraph/

# FeynGraph - A Modern Feynman Diagram Generator

FeynGraph is a modern Feynman diagram generation toolkit aiming to be as versatile as possible while remaining pleasant to use. The library itself is written in Rust, additional language bindings are available for Python and Wolfram Mathematica.

A user guide is available [here](https://jens-braun.github.io/FeynGraph/).

# Installation
## Python
The FeynGraph Python bindings are published to PyPI and can therefore easily installed with e.g. `pip`
```
pip install feyngraph
```
In addition to the library interface, there is also a more classical [command line utility](usage/cli/index.md). This requires some extra dependencies, which can be installed with e.g.
```
pip install feyngraph[cli]
```
### Building From Source
The FeynGraph Python library can also easily be built from source, which requires a [Rust toolchain](https://www.rust-lang.org/tools/install) and [`maturin`](https://www.maturin.rs/). Then, in the cloned repository, a Python wheel can be compiled by running
```
maturin build -r
```
The library can also immediately be installed by running
```
pip install .
```
## Rust
To use FeynGraph in a Rust project, it can simply be added to the project with
```
cargo add feyngraph
```
or be manually added to `Cargo.toml` as
```toml
[dependencies]
feyngraph = "0.1"
```

# Basic Example
The Feynman diagrams of a given process in the Standard Model in Feynman gauge without filtering can be generated by running:

```python
import feyngraph as fg
diags = fg.generate_diagrams(["g", "g"], ["g", "g"], 2)
assert(len(diags) == 88366)
```

