Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
K
kwant
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Anton Akhmerov
kwant
Commits
9997ecc2
Commit
9997ecc2
authored
9 years ago
by
Christoph Groth
Browse files
Options
Downloads
Patches
Plain Diff
setup.py: use setuptools
parent
e9999ec6
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
.gitignore
+2
-1
2 additions, 1 deletion
.gitignore
setup.py
+33
-61
33 additions, 61 deletions
setup.py
with
35 additions
and
62 deletions
.gitignore
+
2
−
1
View file @
9997ecc2
*~
MANIFEST
*.pyc
*.pyo
*.so
...
...
@@ -15,3 +14,5 @@ MANIFEST
/doc/source/images/.*_flag
/doc/source/images/[a-zA-Z]*.py
/build.conf
/kwant.egg-info/
/MANIFEST.in
This diff is collapsed.
Click to expand it.
setup.py
+
33
−
61
View file @
9997ecc2
...
...
@@ -17,17 +17,19 @@ import glob
import
imp
import
subprocess
import
ConfigParser
from
distutils.core
import
setup
,
Extension
,
Command
from
distutils.util
import
get_platform
from
setuptools
import
setup
,
Extension
,
Command
from
sysconfig
import
get_platform
from
distutils.errors
import
DistutilsError
,
DistutilsModuleError
,
\
CCompilerError
from
distutils.command.build
import
build
from
distutils.command.sdist
import
sdist
from
setuptools.command.sdist
import
sdist
from
setuptools.command.build_ext
import
build_ext
import
numpy
CONFIG_FILE
=
'
build.conf
'
README_FILE
=
'
README.rst
'
MANIFEST_IN_FILE
=
'
MANIFEST.in
'
README_END_BEFORE
=
'
See also in this directory:
'
STATIC_VERSION_PATH
=
(
'
kwant
'
,
'
_kwant_version.py
'
)
REQUIRED_CYTHON_VERSION
=
(
0
,
22
)
...
...
@@ -72,11 +74,6 @@ if cythonize:
cython_version
[
-
1
]
-=
1
cython_version
=
tuple
(
cython_version
)
if
cythonize
and
cython_version
:
from
Cython.Distutils
import
build_ext
else
:
from
distutils.command.build_ext
import
build_ext
distr_root
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
def
banner
(
title
=
''
):
...
...
@@ -95,6 +92,7 @@ Build configuration was:
"""
error_msg
=
error_msg
.
format
(
header
=
banner
(
'
Error
'
),
sep
=
banner
())
class
kwant_build_ext
(
build_ext
):
def
run
(
self
):
if
not
config_file_present
:
...
...
@@ -150,30 +148,6 @@ class kwant_build(build):
write_version
(
os
.
path
.
join
(
self
.
build_lib
,
*
STATIC_VERSION_PATH
))
class
kwant_test
(
Command
):
description
=
"
build, then run the unit tests
"
user_options
=
[]
def
initialize_options
(
self
):
pass
def
finalize_options
(
self
):
pass
def
run
(
self
):
try
:
from
nose.core
import
run
except
ImportError
:
raise
DistutilsModuleError
(
'
nose <http://nose.readthedocs.org/>
'
'
is needed to run the tests
'
)
self
.
run_command
(
'
build
'
)
major
,
minor
=
sys
.
version_info
[:
2
]
lib_dir
=
"
build/lib.{0}-{1}.{2}
"
.
format
(
get_platform
(),
major
,
minor
)
print
()
if
not
run
(
argv
=
[
__file__
,
'
-v
'
,
lib_dir
]):
raise
DistutilsError
(
'
at least one of the tests failed
'
)
def
git_lsfiles
():
if
not
version_is_from_git
:
return
...
...
@@ -197,45 +171,42 @@ class kwant_sdist(sdist):
sub_commands
=
[(
'
build
'
,
None
)]
+
sdist
.
sub_commands
def
run
(
self
):
"""
Create MANIFEST.in from git if possible, otherwise check that MANIFEST.in
is present.
Right now (2015) generating MANIFEST.in seems to be the only way to
include files in the source distribution that setuptools does not think
should be there. Setting include_package_data to True makes setuptools
include *.pyx and other source files in the binary distribution.
"""
manifest
=
os
.
path
.
join
(
distr_root
,
MANIFEST_IN_FILE
)
names
=
git_lsfiles
()
trustworthy
=
True
if
names
is
None
:
# Check that MANIFEST exists and has not been generated by
# distutils.
try
:
with
open
(
distr_root
+
'
/MANIFEST
'
,
'
r
'
)
as
f
:
line
=
f
.
read
()
except
IOError
:
print
(
"
Error: MANIFEST file is missing and Git is not
"
"
available to regenerate it.
"
,
file
=
sys
.
stderr
)
if
not
(
os
.
path
.
isfile
(
manifest
)
and
os
.
access
(
manifest
,
os
.
R_OK
)):
print
(
"
Error:
"
,
MANIFEST_IN_FILE
,
"
file is missing and Git is not available
"
"
to regenerate it.
"
,
file
=
sys
.
stderr
)
exit
(
1
)
trustworthy
=
not
line
.
strip
().
startswith
(
'
#
'
)
else
:
# Generate MANIFEST file.
with
open
(
distr_root
+
'
/MANIFEST
'
,
'
w
'
)
as
f
:
with
open
(
manifest
,
'
w
'
)
as
f
:
for
name
in
names
:
a
,
sep
,
b
=
name
.
rpartition
(
'
/
'
)
if
b
==
'
.gitignore
'
:
continue
stem
,
dot
,
extension
=
b
.
rpartition
(
'
.
'
)
f
.
write
(
'
include {}
'
.
format
(
name
))
if
extension
==
'
pyx
'
:
f
.
write
(
''
.
join
([
a
,
sep
,
stem
,
dot
,
'
c
'
,
'
\n
'
]))
f
.
write
(
name
+
'
\n
'
)
f
.
write
(
'
MANIFEST
\n
'
)
f
.
write
(
''
.
join
([
'
'
,
a
,
sep
,
stem
,
dot
,
'
c
'
]))
f
.
write
(
'
\n
'
)
sdist
.
run
(
self
)
if
names
is
None
:
print
(
banner
(
'
Warning
'
),
"""
Git was not available for re-generating the MANIFEST file (the list of file
names to be included in the source distribution). The old MANIFEST was used.
"""
,
banner
(),
sep
=
'
\n
'
,
file
=
sys
.
stderr
)
if
not
trustworthy
:
print
(
banner
(
'
Warning
'
),
"""
The existing MANIFEST file seems to have been generated by distutils (it begins
with a comment). It may well be incomplete.
"""
,
"""
Git was not available to generate the list of files to be included in the
source distribution. The old MANIFEST.in was used.
"""
,
banner
(),
sep
=
'
\n
'
,
file
=
sys
.
stderr
)
...
...
@@ -301,9 +272,7 @@ def search_mumps():
def
extensions
():
"""
Return a list of tuples (args, kwrds) to be passed to
Extension. possibly after replacing
"
.pyx
"
with
"
.c
"
if Cython is not to be
used.
"""
"""
Return a list of tuples (args, kwrds) to be passed to Extension.
"""
global
build_summary
,
config_file_present
build_summary
=
[]
...
...
@@ -476,13 +445,16 @@ def main():
url
=
"
http://kwant-project.org/
"
,
license
=
"
BSD
"
,
packages
=
packages
(),
test_suite
=
'
nose.collector
'
,
cmdclass
=
{
'
build
'
:
kwant_build
,
'
sdist
'
:
kwant_sdist
,
'
build_ext
'
:
kwant_build_ext
,
'
build_tut
'
:
kwant_build_tut
,
'
test
'
:
kwant_test
},
'
build_tut
'
:
kwant_build_tut
},
ext_modules
=
ext_modules
(
extensions
()),
include_dirs
=
[
numpy
.
get_include
()])
include_dirs
=
[
numpy
.
get_include
()],
setup_requires
=
[
'
numpy > 1.6.1
'
,
'
nose >= 1.0
'
],
install_requires
=
[
'
numpy > 1.6.1
'
,
'
scipy >= 0.9
'
,
'
tinyarray
'
],
extras_require
=
{
'
plotting
'
:
'
matplotlib >= 1.2
'
})
if
__name__
==
'
__main__
'
:
main
()
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment