{"action":"created","issue":{"url":"https://api.github.com/repos/ioam/imagen/issues/46","labels_url":"https://api.github.com/repos/ioam/imagen/issues/46/labels{/name}","comments_url":"https://api.github.com/repos/ioam/imagen/issues/46/comments","events_url":"https://api.github.com/repos/ioam/imagen/issues/46/events","html_url":"https://github.com/ioam/imagen/issues/46","id":71601363,"number":46,"title":"Cleaning up Imagen","user":{"login":"jlstevens","id":890576,"avatar_url":"https://avatars.githubusercontent.com/u/890576?v=3","gravatar_id":"","url":"https://api.github.com/users/jlstevens","html_url":"https://github.com/jlstevens","followers_url":"https://api.github.com/users/jlstevens/followers","following_url":"https://api.github.com/users/jlstevens/following{/other_user}","gists_url":"https://api.github.com/users/jlstevens/gists{/gist_id}","starred_url":"https://api.github.com/users/jlstevens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlstevens/subscriptions","organizations_url":"https://api.github.com/users/jlstevens/orgs","repos_url":"https://api.github.com/users/jlstevens/repos","events_url":"https://api.github.com/users/jlstevens/events{/privacy}","received_events_url":"https://api.github.com/users/jlstevens/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-04-28T14:16:12Z","updated_at":"2015-05-05T20:20:14Z","closed_at":null,"body":"I like the core of ImaGen a lot: I think pattern generators a good idea and very useful in practice. Then there is the rest of the code that I don't like, either because the code quality  is poor or because the code is addressing problems that I don't feel should be part of ImaGen.\r\n\r\nIt would be very nice to have a small, clean library called ImaGen instead of what we have now: a nice core surrounded by confusing, unused or poorly implemented code. As I know it is too late to remove this cruft as we have released Imagen 2.0 (note: cruft is a relative term to the core goal of the library!) here is what I would like to see:\r\n\r\n```bash\r\npip install imagen\r\n```\r\nIncludes the core of imagen:\r\n\r\n* ``__init__.py``\r\n* ``patterngenerator.py``: Mostly ok, needs formatting fixes.\r\n* ``patternfn.py``: Should be a collection of staticmethods on a class ``ArrayGenerators``\r\n* ``random.py``: Useful!\r\n* ``image.py``: Useful!\r\n* ``transferfn.py``: Useful!  Although some reorganization needed here.\r\n\r\nThis list includes  **everything**  I think should be on the master branch. Everything else should do on a branch called ` 'extras'`` that can be installed as follows:\r\n\r\n```bash\r\npip install imagen[extras]\r\n```\r\n\r\nThe ``'extras'`` branch is where everything else goes:\r\n\r\n* ``audio.py``\r\n* ``colorspaces.py``\r\n* ``deprecated.py``\r\n* ``patterncoordinator.py``\r\n\r\nI think five nice and clean files in core and four additional files in extras (for more specialist needs) would be a nice arrangement. This organization would encourage me to clean up core:\r\n\r\n* Move array functions to staticmethods on some class (already mentioned)\r\n* Remove comments and turn them into Issues as appropriate.\r\n* Docstring and formatting fixes.\r\n\r\nThen when you run ``pip install imagen`` you get a nice, clean little library with a clear focus without all the other distracting code around it!\r\n\r\nJust to be clear, I am not intending to do any of this now but it would be nice if we could agree on a plan..."},"comment":{"url":"https://api.github.com/repos/ioam/imagen/issues/comments/99209354","html_url":"https://github.com/ioam/imagen/issues/46#issuecomment-99209354","issue_url":"https://api.github.com/repos/ioam/imagen/issues/46","id":99209354,"user":{"login":"jbednar","id":1695496,"avatar_url":"https://avatars.githubusercontent.com/u/1695496?v=3","gravatar_id":"","url":"https://api.github.com/users/jbednar","html_url":"https://github.com/jbednar","followers_url":"https://api.github.com/users/jbednar/followers","following_url":"https://api.github.com/users/jbednar/following{/other_user}","gists_url":"https://api.github.com/users/jbednar/gists{/gist_id}","starred_url":"https://api.github.com/users/jbednar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbednar/subscriptions","organizations_url":"https://api.github.com/users/jbednar/orgs","repos_url":"https://api.github.com/users/jbednar/repos","events_url":"https://api.github.com/users/jbednar/events{/privacy}","received_events_url":"https://api.github.com/users/jbednar/received_events","type":"User","site_admin":false},"created_at":"2015-05-05T20:20:13Z","updated_at":"2015-05-05T20:20:13Z","body":"Sigh. :-/"}}