File: setup.py

package info (click to toggle)
psychopy 2020.2.10%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 44,056 kB
  • sloc: python: 119,649; javascript: 3,022; makefile: 148; sh: 125; xml: 9
file content (102 lines) | stat: -rwxr-xr-x 3,032 bytes parent folder | download
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""Install PsychoPy to your current Python dist, including requirements

usage::

    pip install psychopy
    pip install .  # to install from within the repository
    pip install -e .  # to install a link instead of copying the files

"""

from setuptools import setup, find_packages
from setuptools.config import read_configuration
import os
from os.path import exists, join
from sys import platform, argv, version_info


PY3 = version_info >= (3, 0)
with open('version') as f:
    version = f.read().strip()

#
# Special handling for Anaconda / Miniconda
#

required = read_configuration('setup.cfg')['options']['install_requires']

# OpenCV
# Naming conflict with PyPI package.
# `opencv` package should be installed via conda instead
if 'CONDA_PREFIX' in os.environ:
    required.remove('opencv-python')

# PyQt
# Naming conflict with PyPI package.
# `pyqt` package should be installed via conda instead
# cf. https://github.com/ContinuumIO/anaconda-issues/issues/1554
if PY3 and 'CONDA_PREFIX' in os.environ:
    required.remove('pyqt5; python_version >= "3"')

# compress psychojs to a zip file for packaging
# only takes 0.5s but could skip if you prefer
if ('-noJS' in argv) or not exists('psychojs') or ('clean' in argv):
    pass
else:
    import shutil
    shutil.make_archive(join('psychopy', 'psychojs'),
                        'zip', 'psychojs')

# regenerate __init__.py only if we're in the source repos (not in a source
# zip file)
try:
    from building import createInitFile   # won't exist in a sdist.zip
    writeNewInit = True
except ImportError:
    writeNewInit = False

if writeNewInit:
    # determine what type of dist is being created
    # (install and bdist might do compiliing and then build platform is needed)
    for arg in argv:
        if arg.startswith('bdist') or arg.startswith('install'):
            dist = 'bdist'
        else:
            dist = 'sdist'
    createInitFile.createInitFile(dist=dist)

packages = find_packages()

# define the extensions to compile if necessary
# for the source dist this doesn't work - use the manifest.in file
dataExtensions = ['*.txt', '*.ico', '*.jpg', '*.gif', '*.png', '*.mov',
                  '*.spec', '*.csv', '*.psyexp', '*.xlsx', '.zip']
dataFiles = []

if platform == 'win32':
    pass
elif platform == 'darwin':
    dataExtensions.extend(['*.icns'])
elif platform == 'posix':
    dataFiles += [('share/applications',
                   ['psychopy/app/Resources/psychopy.desktop']),
                  ('share/pixmaps',
                   ['psychopy/app/Resources/psychopy.png'])]

setup(name='PsychoPy',
      packages=packages,
      include_package_data=True,
      package_data={
          # If any package contains *.txt or *.rst files, include them:
          '': dataExtensions,
      },
      data_files=dataFiles,
      install_requires=required,
      version=version)

# remove unwanted info about this system post-build
if writeNewInit:
    createInitFile.createInitFile(dist=None)