diff --git a/.gitignore b/.gitignore index 9784317..d6188b0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,8 @@ __pycache__ .coverage htmlcov/ *.orig -performance.txt \ No newline at end of file +performance.txt +dist/ +cellular_automaton.egg-info/ +build/ +MANIFEST \ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in index bd133bb..f49b53f 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,4 @@ -recursive-include cellular_automaton/examples * \ No newline at end of file +include examples/* +include test/* +include README.md +include LICENSE.txt diff --git a/README.md b/README.md index 9bfa132..0db3bb1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Cellular Automaton -This package provides an cellular automaton for [`Python® 3`](https://www.python.org/) +This package provides an cellular automaton for [Python 3](https://www.python.org/) A cellular automaton defines a grid of cells and a set of rules. All cells then evolve their state depending on their neighbours state simultaneously. @@ -17,16 +17,15 @@ but it is to my best knowledge the first that provides all of the following feat - tested I originally did not plan to write a new cellular automaton module, -but when searching for one, I just found some minimalistic implementations, -that had little or no documentation with an API that really did not fit the problem -and Code that was desperately asking for some refactoring. +but when searching for one, I just found some that had little or no documentation with an API that really did not fit my requirements +and/or Code that was desperately asking for some refactoring. So I started to write my own module with the goal to provide an user friendly API and acceptable documentation. During the implementation I figured, why not just provide n dimensional support and with reading Clean Code from Robert C. Martin the urge to have a clean and tested code with a decent coverage added some more requirements. The speed optimization and multi process capability was more of challenge for myself. -IMHO the module now reached an acceptable speed, but there is still room for improvements. +IMHO the module now reached an acceptable speed, but there is still room for improvements (e.g. with Numba?). ## Usage To start and use the automaton you will have to define three things: @@ -89,11 +88,17 @@ The package contains two examples: - [simple_star_fall](./examples/simple_star_fall.py) - [conways_game_of_life](./examples/conways_game_of_life.py) -Those two example automaton implementations should provide a good start for your own automaton. +Those example automaton implementations should provide a good start for your own project. + +## Getting Involved +Feel free to open pull requests, send me feature requests or even join as developer. +There ist still quite some work to do. + +And for all others, don't hesitate to open issues when you have problems! ## Dependencies As mentioned above the module depends on [pygame](https://www.pygame.org/news) for visualisation. This is the only dependency however. ## Licence -This package is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE](./LICENSE.txt) \ No newline at end of file +This package is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE.txt](./LICENSE.txt) \ No newline at end of file diff --git a/setup.py b/setup.py index 6977244..348064f 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,7 @@ -from distutils.core import setup +from setuptools import setup + +with open('README.md') as f: + long_description = f.read() setup( name="cellular_automaton", @@ -7,8 +10,10 @@ setup( author_email="r.feistenauer@web.de", packages=["cellular_automaton"], url="https://gitlab.com/DamKoVosh/cellular_automaton", - license="LICENSE.txt", - description="N dimensional cellular automaton implementation with multi processing capability.", - long_description="README.md", - requires=["pygame"] + license="Apache License 2.0", + description="N dimensional cellular automaton with multi processing capability.", + long_description=long_description, + long_description_content_type='text/markdown', + requires=["pygame"], + python_requires='>3.6.1' )