Metadata-Version: 2.1
Name: mightstone
Version: 0.9.0
Summary: A library manage all things Magic The Gathering related in python
Home-page: https://github.com/guibod/mightstone
License: MIT
Author: Guillaume Boddaert
Requires-Python: >=3.9.0,<=3.12
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Framework :: AsyncIO
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Games/Entertainment :: Board Games
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Dist: aiofiles (>=23.2.1,<24.0.0)
Requires-Dist: appdirs (>=1.4.4,<2.0.0)
Requires-Dist: asgiref (>=3.6.0,<4.0.0)
Requires-Dist: asyncstdlib (>=3.10.5,<4.0.0)
Requires-Dist: beanie (==1.26.0)
Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
Requires-Dist: cairosvg (>=2.6.0,<3.0.0)
Requires-Dist: click (>=8.0.1,<9.0.0)
Requires-Dist: httpx (>=0.27.0,<0.28.0)
Requires-Dist: httpx-cache (>=0.13.0,<0.14.0)
Requires-Dist: ijson (>=3.2.0.post0,<4.0.0)
Requires-Dist: injector (>=0.21.0,<0.22.0)
Requires-Dist: lxml (>=5.2.2,<6.0.0)
Requires-Dist: mongomock-motor (>=0.0.29,<0.0.30)
Requires-Dist: motor (>=3.1.1,<4.0.0)
Requires-Dist: ordered-set (>=4.1.0,<5.0.0)
Requires-Dist: pillow (>=9.4,<11.0)
Requires-Dist: pydantic (>=2.7.3)
Requires-Dist: pydantic-extra-types (>=2.7.0,<3.0.0)
Requires-Dist: pydantic-settings (>=2.2.1,<3.0.0)
Requires-Dist: pylint-pydantic (==0.3.2)
Requires-Dist: pymongo-inmemory (>=0.4.2,<0.5.0)
Requires-Dist: pyparsing (>=3.1.2,<4.0.0)
Requires-Dist: pytest (>=8.2.2,<9.0.0)
Requires-Dist: python-slugify (>=8.0.0,<9.0.0)
Requires-Dist: pyyaml (>=6.0.0,<7.0.0)
Requires-Dist: requests (>=2.28.2,<3.0.0)
Requires-Dist: ruff (>=0.4.7,<0.5.0)
Project-URL: Bug Tracker, https://github.com/guibod/mightstone/issues
Project-URL: Documentation, https://github.com/guibod/mightstone/blob/master/README.md
Project-URL: Repository, https://github.com/guibod/mightstone
Description-Content-Type: text/markdown

# mightstone


[![PyPi](https://img.shields.io/pypi/v/mightstone.svg)](https://pypi.python.org/pypi/mightstone)
[![Documentation](https://readthedocs.org/projects/mightstone/badge/?version=latest)](https://mightstone.readthedocs.io/en/latest/?badge=latest)
[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
[![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7037/badge)](https://bestpractices.coreinfrastructure.org/projects/7037)


<div align="center">
  <h3 align="centor">Mightstone</h3>
  <a href="https://github.com/guibod/mighstone">
    <img src="docs/source/mightstone.logo.160.png" alt="Logo" width="160" height="160">
  </a>
    
  A library to manage all things Magic The Gathering related in python.<br>
  <a href="https://mightstone.readthedocs.io/en/stable/"><strong>Explore the docs »</strong></a>

<a href="https://github.com/Guibod/mightstone/issues/new?labels=bug&template=bug-report---.md">Report Bug</a>
·
<a href="https://github.com/Guibod/mightstone/issues/new?labels=enhancement&template=feature-request---.md">Request Feature</a>
  </p>
</div>

---

## Features

* Mightstone use `Pydantic`, `Beanie` and `Asyncio` as core feature.
* Integrated persistence support through `Beanie` of many data classes. Download once, and use data offline.
* HTTP cache integration
* Supported services:
  * [Scryfall](https://scryfall.com)
  * [EDHREC](https://edhrec.com/)
  * [MTGJSON](https://mtgjson.com/)
  * [CardConjurer](https://cardconjurer.com/)
  * [Magic The Gathering](https://magic.wizards.com/en/rules>) (rules)

Supported on python 3.9, 3.10, 3.11, and 3.12.

---

## Usage
Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to [the Documentation](https://mightstone.readthedocs.io/en/stable/)

---

## Developing

Run `make` for help

    make install             # Run `poetry install`
    make lint                # Runs bandit, black, mypy in check mode
    make test                # run pytest with coverage
    make build               # run `poetry build` to build source distribution and wheel
    make pyinstaller         # Create a binary executable using pyinstaller

---

## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
3. Commit your Changes (git commit -m 'Add some AmazingFeature')
4. Push to the Branch (git push origin feature/AmazingFeature)
5. Open a Pull Request

The project lint step will enforce coding standards through Black, Isort and Mypy.

## System dependencies
    
As an asynchronous data handler, Mightstone must handle large JSON files that’s why it relies on IJSON.
Mightstone use [Ijson](https://github.com/ICRAR/ijson) that relies on [YAJL](https://lloyd.github.io/yajl/). IJson will
use its python backend on the run if YAJL is not installed, but you could benefit from installing YAJL locally.



