# -*- coding: utf-8 -*-
from setuptools import setup

packages = \
['motllo']

package_data = \
{'': ['*']}

install_requires = \
['click>=7.1.1,<8.0.0', 'colorlog>=4.1.0,<5.0.0', 'pyyaml>=5.3,<6.0']

entry_points = \
{'console_scripts': ['motllo = motllo.main:cli']}

setup_kwargs = {
    'name': 'motllo',
    'version': '0.2.2',
    'description': 'Project patterns like I like them',
    'long_description': '# Motllo\n\n[![PyPI version](https://badge.fury.io/py/motllo.svg)](https://badge.fury.io/py/motllo)\n\nRepository templates just like I like them\n\n- [Quick visual example](#quick-visual-example)\n- [Motivation](#motivation)\n- [Description](#description)\n- [Example](#example)\n- [Usage](#usage)\n- [Is it safe to use?](#is-it-safe-to-use)\n- [Next steps](#next-steps)\n\n## Quick visual example\n\n<img src="motllo.gif"/>\n\n## Motivation\n\nIt can be due to a bit of OCD and a bit of Knuth. \n\n- Most "project template" systems (that let you create a repository with\n  everything set up to use a library) need a specific repository for it\n  ([cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/),\n  [giter8](http://www.foundweekends.org/giter8/), [GitHub\'s own template\n  repositories](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository)).\n  This feels weird to me, like needing a house to build a new house.\n- I prefer more compact stuff I can read. Even better if I can document\n\nSo, here\'s `motllo`\n\n```\n[1284; del ll. mŏdŭlus \'mesura; mòdul\', dimin. de modus \'mesura\']\n \t\nm 1 1 TECNOL METAL·L ART Peça amb una cavitat en la qual hom introdueix \nuna substància en forma de pols, de pasta o líquida per tal que, en \npassar a l\'estat sòlid, agafi la forma de la cavitat. \n```\n\n## Description\n\nMotllo can convert a folder structure/repository (it more or less handles\n`.gitignore` rules) into a Markdown document with:\n\n- A "Tree structure" section\n- Optionally, replacements to apply to the structure via the command line tool\n- A tree representation of the folder structure you want (similar to the one\n  generated by the `tree` UNIX utility, but in Python, thanks to a\n  [Stackoverflow answer](https://stackoverflow.com/a/59109706) by [Aaron\n  Hall](https://twitter.com/aaronchall)) inside of a code block\n- Optionally, section links\n- Sections, titled with the filepath described in the tree\n- Optionally, replacement blocks for this filepath\n- Code blocks (with possibly text describing what they are there for). All code\n  blocks within a section are merged into that file\n  \nAnd, probably more importantly, given a document as above, it can convert it into a\nfolder/repository structure, with variable replacement (in filenames as well as\nin code).\n\n## Example\n\nYou can see an example of a basic Python CLI tool (like this one) as a template,\nwith replacements and comments [here](examples/python_cli.md).\n\nYou can convert that Markdown file into a folder structure with\n\n```\nmotllo build PATH_TO/python_cli.md -o SOME_COOL_PATH -r "project_name:awesome-new-project --commit"\n```\n\nWithout `--commit` you will only get an informational log about what operations will be performed\n\nI plan on adding more examples at some point. New examples welcome!\n\n## Usage\n\nThe most easy uses are\n\n```\nmotllo markdown . -o some_markdown.md\n```\n\nto generate the Markdown template from a repository, which will respect nested\nand global `.gitignore ` and then\n\n```\nmotllo build markdown_template.md -o /wherever/ -r "project:cool-new-project" -r "version:0.0.1"\n```\n\nHere are the commands as shown in the CLI\n\n```\nUsage: motllo [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --debug  Set log level to debug\n  --help   Show this message and exit.\n\nCommands:\n  build     Build a file/folder structure based on a Markdown document at...\n  markdown  Generate a Markdown template from a folder or repository at PATH\n  tree      Generate only the visual folder tree (like the UNIX tree...\n```\n---\n```\nUsage: motllo build [OPTIONS] PATH\n\n  Build a file/folder structure based on a Markdown document at PATH\n\nOptions:\n  -o, --output TEXT          Destination path to create everything  [required]\n  -r, --replace TEXT         Multiple replacement rules separated by colons,\n                             like -r "$PROJ:world_domination",\n                             -r"$TOOLS:python"\n\n  --ignore-existing-folders  Ignore if the destination folder already exists\n  --dry-run / --commit       Dry run by default so you can see what it does\n  --help                     Show this message and exit.\n```\n---\n```\nUsage: motllo markdown [OPTIONS] PATH\n\n  Generate a Markdown template from a folder or repository at PATH. Will\n  ignore hidden files, you can use --force-include to add them\n\nOptions:\n  -x, --max-length INTEGER      Maximum amount of lines to write in the\n                                markdown, for each file. Use -1 for `all of\n                                them`. Defaults to 15\n\n  -o, --output TEXT             Destination markdown file  [required]\n  --force-include TEXT          Glob patterns to forcefully include, comma\n                                separated between quotes like\n                                "*.py,*.c,*.scala"\n\n  --ignore TEXT                 Glob patterns to ignore, comma separated\n                                between quotes like "*.py,*.c,*.scala"\n\n  --gitignore / --no-gitignore  Use local and global gitignores, yes by\n                                default\n\n  --help                        Show this message and exit.\n```\n---\n```\nUsage: motllo tree [OPTIONS] PATH\n\n  Generate only the visual folder tree (like the UNIX tree command)\n\nOptions:\n  --force-include TEXT          Glob patterns to forcefully include, comma\n                                separated between quotes like\n                                "*.py,*.c,*.scala"\n\n  --ignore TEXT                 Glob patterns to ignore, comma separated\n                                between quotes like "*.py,*.c,*.scala"\n\n  --gitignore / --no-gitignore  Use local and global gitignores, yes by\n                                default\n\n  --help                        Show this message and exit.\n```\n\n## Is it safe to use?\n\nWell, in dry run mode it will tell you what it will write, so pretty much yes.\nDon\'t blame me if it fails. Of course, I\'d be happy to see it fail in the wild\nand improve it.\n\n## Next steps\n\nI want to refactor big chunks of the internals (I don\'t like parts of the API),\nand add some more testing, particularly around the replacements. This will be\ntricky, since generating random replacements is hard.\n\nI will probably spin out the markdown parser (which was stolen from the one I\nwrote for [bear-note-graph](https://github.com/rberenguel/bear-note-graph)) into\nits own library\n',
    'author': 'Ruben Berenguel',
    'author_email': 'ruben+poetry@mostlymaths.net',
    'maintainer': None,
    'maintainer_email': None,
    'url': 'https://github.com/rberenguel/motllo',
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'entry_points': entry_points,
    'python_requires': '>=3.7,<4.0',
}


setup(**setup_kwargs)
