aboutsummaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
authorLibravatarAgustin Henze <tin@sluc.org.ar>2013-11-20 16:58:50 -0300
committerLibravatarAgustin Henze <tin@sluc.org.ar>2013-11-20 16:58:50 -0300
commitca94afc07df55cb7fc6fe3b4f3011877b7881195 (patch)
treed81e1f275aa77545f33740723f307a83dde2e0b4 /setup.py
parentf794eee787e9cde54e6b8f53e45d69c9ddc9936a (diff)
Imported Upstream version 6.2.1upstream/6.2.1
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py112
1 files changed, 84 insertions, 28 deletions
diff --git a/setup.py b/setup.py
index 9fbe258..3cf70eb 100755
--- a/setup.py
+++ b/setup.py
@@ -6,7 +6,8 @@
# Licensed under the MIT license:
# http://www.opensource.org/licenses/mit-license.php
-from __future__ import print_function
+# Don't use __future__ in this script, it breaks buildout
+# from __future__ import print_function
import os
import subprocess
import sys
@@ -29,18 +30,8 @@ except ImportError:
from distutils.command.install import install
from distutils.util import convert_path # NOQA
-dependencies = [
- 'doit>=0.20.0',
- 'pygments',
- 'pillow',
- 'docutils',
- 'mako>=0.6',
- 'unidecode',
- 'lxml',
- 'yapsy',
- 'PyRSS2Gen',
- 'pytz',
-]
+with open('requirements.txt', 'r') as fh:
+ dependencies = [l.strip() for l in fh]
########### platform specific stuff #############
import platform
@@ -51,15 +42,16 @@ scripts = ['scripts/nikola']
if platform_system == "Windows":
scripts.append('scripts/nikola.bat')
+if sys.version_info[0] == 2 and sys.version_info[1] < 6:
+ raise Exception('Python 2 version < 2.6 is not supported')
+elif sys.version_info[0] == 3 and sys.version_info[1] < 3:
+ raise Exception('Python 3 version < 3.3 is not supported')
+
##################################################
if sys.version_info[0] == 2:
# in Python 3 this becomes a builtin, for Python 2 we need the backport
dependencies.append('configparser')
-elif sys.version_info[0] == 3:
- # Pillow introduced support for Python 3 with 2.0.0
- dependencies.remove('pillow')
- dependencies.append('pillow>=2.0.0')
# Provided as an attribute, so you can append to these instead
# of replicating them:
@@ -84,6 +76,44 @@ def copy_messages():
shutil.copytree(original_messages_directory, theme_messages_directory)
+def copy_symlinked_for_windows():
+ """replaces the symlinked files with a copy of the original content.
+
+ In windows (msysgit), a symlink is converted to a text file with a
+ path to the file it points to. If not corrected, installing from a git
+ clone will end with some files with bad content
+
+ After install the WC will be dirty (symlink markers rewroted with real
+ content)
+ """
+
+ # essentially nikola.utils.should_fix_git_symlinked inlined, to not
+ # fiddle with sys.path / import unless really needed
+ if sys.platform != 'win32':
+ return
+ path = (os.path.dirname(__file__) +
+ r'nikola\data\samplesite\stories\theming.rst')
+ try:
+ if os.path.getsize(path) < 200:
+ pass
+ else:
+ return
+ except Exception:
+ return
+
+ # apply the fix
+ localdir = os.path.dirname(__file__)
+ dst = os.path.join(localdir, 'nikola', 'data', 'samplesite')
+ src = dst
+ oldpath = sys.path[:]
+ sys.path.insert(0, os.path.join(localdir, 'nikola'))
+ winutils = __import__('winutils')
+ winutils.fix_git_symlinked(src, dst)
+ sys.path = oldpath
+ del sys.modules['winutils']
+ print('WARNING: your working copy is now dirty by changes in samplesite')
+
+
def install_manpages(root, prefix):
try:
man_pages = [
@@ -113,6 +143,7 @@ def install_manpages(root, prefix):
class nikola_install(install):
def run(self):
+ copy_symlinked_for_windows()
install.run(self)
install_manpages(self.root, self.prefix)
@@ -196,24 +227,49 @@ def find_package_data(
out.setdefault(package, []).append(prefix + name)
return out
+
setup(name='Nikola',
- version='5.4.4',
- description='Static blog/website generator',
+ version='6.2.1',
+ description='A modular, fast, simple, static website generator',
+ long_description=open('README.rst').read(),
author='Roberto Alsina and others',
author_email='ralsina@netmanagers.com.ar',
- url='http://nikola.ralsina.com.ar/',
+ url='http://getnikola.com',
packages=['nikola',
'nikola.plugins',
- 'nikola.plugins.command_planetoid',
- 'nikola.plugins.compile_ipynb',
- 'nikola.plugins.compile_markdown',
- 'nikola.plugins.compile_misaka',
- 'nikola.plugins.compile_rest',
- 'nikola.plugins.task_localsearch',
- 'nikola.plugins.task_mustache',
- 'nikola.plugins.task_sitemap',
+ 'nikola.plugins.command',
+ 'nikola.plugins.command.planetoid',
+ 'nikola.plugins.compile',
+ 'nikola.plugins.compile.ipynb',
+ 'nikola.plugins.compile.markdown',
+ 'nikola.plugins.compile.rest',
+ 'nikola.plugins.task',
+ 'nikola.plugins.task.localsearch',
+ 'nikola.plugins.task.mustache',
+ 'nikola.plugins.task.sitemap',
+ 'nikola.plugins.template',
],
+ license='MIT',
+ keywords='website, static',
scripts=scripts,
+ classifiers=('Development Status :: 5 - Production/Stable',
+ 'Environment :: Console',
+ 'Environment :: Plugins',
+ 'Environment :: Web Environment',
+ 'Intended Audience :: End Users/Desktop',
+ 'License :: OSI Approved :: MIT License',
+ 'Operating System :: MacOS',
+ 'Operating System :: Microsoft :: Windows',
+ 'Operating System :: OS Independent',
+ 'Operating System :: POSIX',
+ 'Operating System :: Unix',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 2.6',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3.3',
+ 'Topic :: Internet',
+ 'Topic :: Internet :: WWW/HTTP',
+ 'Topic :: Text Processing :: Markup'),
install_requires=dependencies,
package_data=find_package_data(),
cmdclass={'install': nikola_install},