Metadata-Version: 2.4
Name: xsuite-utils
Version: 0.1.0
Summary: Utilities for XSuite, focused on accelerator specific tools
Author-email: Kyriacos Skoufaris <kyriacos.skoufaris@cern.ch>, Giulia Nigrelli <giulia.nigrelli@cern.ch>, Maël Le Garrec <mael.le.garrec@cern.ch>
License: Apache-2.0
Project-URL: Homepage, https://gitlab.cern.ch/kskoufar/xutil/
Project-URL: Documentation, https://gitlab.cern.ch/kskoufar/xutil/docs
Project-URL: Repository, https://gitlab.cern.ch/kskoufar/xutil/
Project-URL: Issues, https://gitlab.cern.ch/kskoufar/xutil/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: POSIX :: Linux
Classifier: Environment :: Console
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.21
Requires-Dist: cpymad>=1.9.0
Requires-Dist: xsuite>=0.27
Requires-Dist: pandas>=1.3
Requires-Dist: tfs-pandas>=2.0
Requires-Dist: matplotlib>=3.5
Requires-Dist: h5py>=3.0
Requires-Dist: tqdm>=4.0
Requires-Dist: scipy>=1.7
Requires-Dist: pylhc_submitter>=0.5
Requires-Dist: pyyaml>=6.0
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: pytest-cov>=3.0; extra == "test"
Requires-Dist: pytest-mock>=3.0; extra == "test"
Requires-Dist: pytest-xdist>=2.0; extra == "test"
Provides-Extra: doc
Requires-Dist: sphinx>=5.0; extra == "doc"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "doc"
Requires-Dist: sphinx-autoapi>=2.0; extra == "doc"
Requires-Dist: myst-parser>=0.18; extra == "doc"
Requires-Dist: nbsphinx>=0.8; extra == "doc"
Provides-Extra: dev
Requires-Dist: pre-commit>=2.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: flake8>=5.0; extra == "dev"
Requires-Dist: isort>=5.0; extra == "dev"
Requires-Dist: ipython>=8.0; extra == "dev"
Dynamic: license-file

# FCC Lattice Simulation Toolkit

A Python package for constructing and simulating FCC-ee lattices using XSuite and MAD-X.

## Features

- **Lattice Construction**: Build FCC lattices from MAD-X sequences
- **Beam Dynamics**: Configure beam parameters and optics
- **Injection Modeling**: Realistic injection scenarios
- **Tracking**: Particle tracking with synchrotron radiation
- **Analysis**: Tools for lattice diagnostics and optimization

## Installation

### Installation

```bash
pip install xutil
```

### Development Installation

```bash
git clone https://gitlab.cern.ch/kskoufar/xutil.git
cd xutil
pip install -e ".[dev,doc]"
```

## Development

### Building the Package

To build the package locally:

```bash
# Install build dependencies
pip install build twine

# Build the package
python -m build

# The built packages will be in the dist/ directory
```

### Publishing to PyPI

To publish to the main PyPI repository:

```bash
python -m twine upload dist/*

# Or for the test repo
python -m twine upload --repository testpypi dist/*
```

## Documentation

Full documentation is available at: [https://xutil.readthedocs.io](https://xutil.readthedocs.io)

To build documentation locally:
```bash
cd docs
make html
open ./build/html/index.html
```

## Contributing

We welcome contributions! Please:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/your-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin feature/your-feature`)
5. Open a Merge Request

## Citation

```bibtex
@software{xutil,
  author = {Kyriacos Skoufaris, Giulia Nigrelli, Maël Le Garrec},
  title = {Xutil - FCC Lattice Simulation Toolkit},
  year = {2025},
  publisher = {GitLab},
  journal = {GitLab repository},
  howpublished = {\url{https://gitlab.cern.ch/kskoufar/xutil}},
  version = {0.1.0}
}
```

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
