summaryrefslogtreecommitdiff
path: root/setup.py
blob: da038d2440a89e39b036c101a2963bcbabeca9ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env python

from os import walk
from os.path import join, relpath

from setuptools import find_packages, setup


version = "4.8.0"

requires = ['feedgenerator >= 1.9', 'jinja2 >= 2.7', 'pygments',
            'docutils>=0.15', 'pytz >= 0a', 'blinker', 'unidecode',
            'python-dateutil', 'rich']

entry_points = {
    'console_scripts': [
        'pelican = pelican.__main__:main',
        'pelican-import = pelican.tools.pelican_import:main',
        'pelican-quickstart = pelican.tools.pelican_quickstart:main',
        'pelican-themes = pelican.tools.pelican_themes:main',
        'pelican-plugins = pelican.plugins._utils:list_plugins'
    ]
}

README = open('README.rst', encoding='utf-8').read()
CHANGELOG = open('docs/changelog.rst', encoding='utf-8').read()

# Relative links in the README must be converted to absolute URL's
# so that they render correctly on PyPI.
README = README.replace(
    "<CONTRIBUTING.rst>",
    "<https://docs.getpelican.com/en/latest/contribute.html>",
)

description = '\n'.join([README, CHANGELOG])

setup(
    name='pelican',
    version=version,
    url='https://getpelican.com/',
    author='Justin Mayer',
    author_email='authors@getpelican.com',
    description="Static site generator supporting reStructuredText and "
                "Markdown source content.",
    project_urls={
        'Documentation': 'https://docs.getpelican.com/',
        'Funding': 'https://donate.getpelican.com/',
        'Source': 'https://github.com/getpelican/pelican',
        'Tracker': 'https://github.com/getpelican/pelican/issues',
    },
    keywords='static web site generator SSG reStructuredText Markdown',
    license='AGPLv3',
    long_description=description,
    long_description_content_type='text/x-rst',
    packages=find_packages(),
    include_package_data=True,  # includes all in MANIFEST.in if in package
    # NOTE : This will collect any files that happen to be in the themes
    # directory, even though they may not be checked into version control.
    package_data={  # pelican/themes is not a package, so include manually
        'pelican': [relpath(join(root, name), 'pelican')
                    for root, _, names in walk(join('pelican', 'themes'))
                    for name in names],
    },
    install_requires=requires,
    extras_require={
        'Markdown': ['markdown~=3.1.1']
    },
    entry_points=entry_points,
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Environment :: Console',
        'Framework :: Pelican',
        'License :: OSI Approved :: GNU Affero General Public License v3',
        'Operating System :: OS Independent',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3.9',
        'Programming Language :: Python :: 3.10',
        'Programming Language :: Python :: Implementation :: CPython',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Software Development :: Libraries :: Python Modules',
    ],
    test_suite='pelican.tests',
)