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

package_dir = \
{'': 'src'}

packages = \
['mkdocstrings']

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

entry_points = \
{'console_scripts': ['mkdocstrings = mkdocstrings.cli:main'],
 'mkdocs.plugins': ['mkdocstrings = mkdocstrings.plugin:MkdocstringsPlugin']}

setup_kwargs = {
    'name': 'mkdocstrings',
    'version': '0.7.2',
    'description': 'Automatic documentation from docstrings, for mkdocs.',
    'long_description': '# mkdocstrings\n[![pipeline status](https://gitlab.com/pawamoy/mkdocstrings/badges/master/pipeline.svg)](https://gitlab.com/pawamoy/mkdocstrings/pipelines)\n[![coverage report](https://gitlab.com/pawamoy/mkdocstrings/badges/master/coverage.svg)](https://gitlab.com/pawamoy/mkdocstrings/commits/master)\n[![documentation](https://img.shields.io/badge/docs-latest-green.svg?style=flat)](https://pawamoy.github.io/mkdocstrings)\n[![pypi version](https://img.shields.io/pypi/v/mkdocstrings.svg)](https://pypi.org/project/mkdocstrings/)\n\nAutomatic documentation from docstrings, for mkdocs.\n\nThis plugin is still in alpha status. Here is how it looks with the [mkdocs-material theme](https://squidfunk.github.io/mkdocs-material/) for now:\n\n![mkdocstrings](https://user-images.githubusercontent.com/3999221/71327911-e467d000-250e-11ea-83e7-a81ec59f41e2.gif)\n\n## Features\n- **Works great with Material theme:** `mkdocstrings` was designed to work best with\n  the great [Material theme](https://squidfunk.github.io/mkdocs-material/).\n- **Support for type annotations:** `mkdocstrings` uses your type annotations to display parameters types\n  or return types.\n- **Recursive documentation of Python objects:** just write the module dotted-path, and you get the full module docs.\n  No need to ask for each class, function, etc.\n- **Support for documented attribute:** attributes (variables) followed by a docstring (triple-quoted string) will\n  be recognized by `mkdocstrings`, in modules, classes and even in `__init__` methods.\n- **Support for objects properties:** `mkdocstrings` will know if a method is a `staticmethod`, a `classmethod` or else,\n  it will also know if a property is read-only or writable, and more! These properties will be displayed\n  next to the object signature.\n- **Every object has a TOC entry and a unique permalink:** the navigation is greatly improved! Click the anchor\n  next to the object signature to get its permalink, which is its Python dotted-path.\n- **Auto-reference other objects:** `mkdocstrings` makes it possible to reference other Python objects from your\n  markdown files, and even from your docstrings, with the classic Markdown syntax:\n  `[this object][package.module.object]` or directly with `[package.module.object][]`.\n- **Google-style sections support in docstrings:** `mkdocstrings` understands `Arguments:`, `Raises:`\n  and `Returns:` sections. It will even keep the section order in the generated docs.\n- **Support for source code display:** `mkdocstrings` can add a collapsible div containing the source code of the\n  Python object, directly below its signature, with the right line numbers.\n- **Admonition support in docstrings:** blocks like `Note: ` or `Warning: ` will be transformed\n  to their [admonition](https://squidfunk.github.io/mkdocs-material/extensions/admonition/) equivalent.\n  *We do not support nested admonitions in docstrings!*\n- **Sane defaults:** you should be able to just drop the plugin in your configuration and enjoy your auto-generated docs.\n\nTo get an example of what is possible, check `mkdocstrings`\'\nown [documentation](https://pawamoy.github.io/mkdocstrings), generated with itself.\n\n## Roadmap\n- [x] **December 2019:** It all started with a Proof of Concept.\n  I familiarized myself with mkdocs and its plugin system,\n  wrote quick and dirty code to retrieve Python objects with their docstrings\n  and generate markdown from it. Markdown was automatically rendered to HTML\n  in the mkdocs rendering process. It worked well but was really messy and not\n  flexible at all.\n- [x] **January 2020:** I started designing a better architecture (mkdocs plugin + markdown extension),\n  see [issue #28](https://github.com/pawamoy/mkdocstrings/issues/28)\n- [x] **January 2020:** I still packaged it (with Poetry :heart:) and released the first versions to try it on real projects.\n- [x] **January 2020:** Some people tried it as well, contributed (thanks a lot!) and then\n  someone with a lot of followers starred it and it got more attention.\n- [x] **January 2020:** It was the end of the year and the beginning of a new one, and I started a new job\n  so my time was very limited. There were a few bug fixes, but overall slow progress.\n- [ ] **February 2020:** Efforts are being put into the implementation of the desired architecture.\n  Once it\'s done, it will be easier to contribute and things will move faster. It\'s just a bit hard right now\n  because of my limited time, and the task requiring more than a few consecutive minutes to be done\n  (more like a few consecutive hours).\n- [ ] **Mars 2020:** At this point I\'ll make a new release (still 0.x of course)\n- [ ] **Mars 2020:** And obviously we\'ll need an extensive test suite to ensure quality :slightly_smiling_face:\n- [ ] **Mars-April 2020:** We\'ll make mkdocstrings configurable (for selecting objects and rendering them)\n- [ ] **April 2020:** Work the backlog!\n\n## Requirements\nmkdocstrings requires Python 3.6 or above.\n\n<details>\n<summary>To install Python 3.6, I recommend using <a href="https://github.com/pyenv/pyenv"><code>pyenv</code></a>.</summary>\n\n```bash\n# install pyenv\ngit clone https://github.com/pyenv/pyenv ~/.pyenv\n\n# setup pyenv (you should also put these three lines in .bashrc or similar)\nexport PATH="${HOME}/.pyenv/bin:${PATH}"\nexport PYENV_ROOT="${HOME}/.pyenv"\neval "$(pyenv init -)"\n\n# install Python 3.6\npyenv install 3.6.8\n\n# make it available globally\npyenv global system 3.6.8\n```\n</details>\n\n## Installation\nWith `pip`:\n```bash\npython3.6 -m pip install mkdocstrings\n```\n\n## Usage\n\n```yaml\n# mkdocs.yml\n\n# designed to work best with material theme\ntheme:\n  name: "material"\n\nplugins:\n  - search\n  - mkdocstrings\n```\n\nIn one of your markdown files:\n\n```markdown\n# Reference\n\n::: my_library.my_module.my_class\n```\n\nYou can reference objects from other modules in your docstrings:\n\n```python\ndef some_function():\n    """\n    This is my function.\n\n    It references [another function][package.submodule.function].\n    It also references another object directly: [package.submodule.SuperClass][].\n    """\n    pass\n```\n\nAdd some style in `docs/custom.css`:\n\n```css\ndiv.autodoc {\n  padding-left: 25px;\n  border-left: 4px solid rgba(230, 230, 230);\n}\n```\n\nAnd add it to your configuration:\n\n```yaml\nextra_css:\n  - custom.css\n```\n\n## Docstrings format\nYour docstrings must follow a particular format, otherwise `mkdocstrings` will throw an exception.\nThis will be improved to be more robust over time.\n\n```python\nfrom typing import Optional\n\ndef my_function(param1: int, param2: Optional[str] = None) -> str:\n    """\n    A short description of this function.\n\n    A longer description of this function.\n    You can use more lines.\n\n        This is code block,\n        as usual.\n\n    ```python\n    s = "This is a Python code block :)"\n    ```\n\n    Arguments:\n        param1: An integer?\n        param2: A string? If you have a long description,\n          you can split it on multiple lines.\n          Just remember to indent those lines with at least two more spaces.\n               They will all be concatenated in one line, so do not try to\n             use complex markup here.\n\n    Note:\n        We omitted the type hints next to the parameters names.\n        Usually you would write something like `param1 (int): ...`,\n        but `mkdocstrings` gets the type information from the signature, so it\'s not needed here.\n\n    Exceptions are written the same.\n\n    Raises:\n        OSError: Explain when this error is thrown.\n        RuntimeError: Explain as well.\n          Multi-line description, etc.\n\n    Let\'s see the return value section now.\n\n    Returns:\n        A description of the value that is returned.\n        Again multiple lines are allowed. They will also be concatenated to one line,\n        so do not use complex markup here.\n\n    Note:\n        Other words are supported:\n\n        - `Args`, `Arguments`, `Params` and `Parameters` for the parameters.\n        - `Raise`, `Raises`, `Except`, and `Exceptions` for exceptions.\n        - `Return` or `Returns` for return value.\n\n        They are all case-insensitive, so you can write `RETURNS:` or `params:`.\n    """\n    return f"{param2}{param1}"\n```\n\nThis docstring would be rendered like this (had to take two screenshots, so it\'s not perfectly aligned):\n\n![image](https://user-images.githubusercontent.com/3999221/71548405-f41f6280-29ad-11ea-939e-d02a16232aa0.png)\n![image](https://user-images.githubusercontent.com/3999221/71548413-ff728e00-29ad-11ea-95a5-d61e990be6c4.png)\n',
    'author': 'Timothée Mazzucotelli',
    'author_email': 'pawamoy@pm.me',
    'maintainer': None,
    'maintainer_email': None,
    'url': 'https://github.com/pawamoy/mkdocstrings',
    'package_dir': package_dir,
    'packages': packages,
    'package_data': package_data,
    'entry_points': entry_points,
    'python_requires': '>=3.6,<4.0',
}


setup(**setup_kwargs)
