Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
zesje
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
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
Works on my machine
zesje
Commits
ac412beb
Commit
ac412beb
authored
6 years ago
by
Joseph Weston
Browse files
Options
Downloads
Patches
Plain Diff
add miniver to zesje
parent
f33723cb
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
.gitattributes
+1
-0
1 addition, 0 deletions
.gitattributes
setup.py
+22
-4
22 additions, 4 deletions
setup.py
zesje/__init__.py
+3
-0
3 additions, 0 deletions
zesje/__init__.py
zesje/_static_version.py
+12
-0
12 additions, 0 deletions
zesje/_static_version.py
zesje/_version.py
+166
-0
166 additions, 0 deletions
zesje/_version.py
with
204 additions
and
4 deletions
.gitattributes
0 → 100644
+
1
−
0
View file @
ac412beb
zesje/_static_version.py export-subst
\ No newline at end of file
This diff is collapsed.
Click to expand it.
setup.py
+
22
−
4
View file @
ac412beb
...
...
@@ -3,14 +3,29 @@
import
sys
from
setuptools
import
setup
,
find_packages
from
setuptools.command.sdist
import
sdist
as
sdist_orig
if
sys
.
version_info
<
(
3
,
6
):
print
(
'
zesje requires Python 3.6 or higher
'
)
sys
.
exit
(
1
)
class
sdist
(
sdist_orig
):
# Loads version.py module without importing the whole package.
def
get_version_and_cmdclass
(
package_path
):
import
os
from
importlib.util
import
module_from_spec
,
spec_from_file_location
spec
=
spec_from_file_location
(
'
version
'
,
os
.
path
.
join
(
package_path
,
'
_version.py
'
))
module
=
module_from_spec
(
spec
)
spec
.
loader
.
exec_module
(
module
)
return
module
.
__version__
,
module
.
cmdclass
version
,
cmdclass
=
get_version_and_cmdclass
(
'
zesje
'
)
# will be replaced by the overriding classes below
_sdist
=
cmdclass
.
pop
(
'
sdist
'
)
class
sdist
(
_sdist
):
def
run
(
self
):
import
subprocess
subprocess
.
check_call
([
'
yarn
'
,
'
install
'
])
...
...
@@ -18,15 +33,18 @@ class sdist(sdist_orig):
super
().
run
()
cmdclass
[
'
sdist
'
]
=
sdist
setup
(
name
=
"
zesje
"
,
version
=
"
0.1a
"
,
version
=
version
,
url
=
"
http://gitlab.kwant-project,org/zesje/zesje
"
,
description
=
""
,
author
=
"
Zesje authors
"
,
author_email
=
"
anton.akhmerov@tudelft.nl
"
,
packages
=
find_packages
(
'
.
'
),
cmdclass
=
dict
(
sdist
=
sdist
)
,
cmdclass
=
cmdclass
,
package_data
=
{
'
zesje
'
:
[
'
static/*
'
]},
include_package_data
=
True
,
)
This diff is collapsed.
Click to expand it.
zesje/__init__.py
+
3
−
0
View file @
ac412beb
...
...
@@ -9,8 +9,11 @@ from werkzeug.exceptions import NotFound
from
.api
import
api_bp
from
.database
import
db
from
._version
import
__version__
__all__
=
[
'
__version__
'
,
'
app
'
]
STATIC_FOLDER_PATH
=
os
.
path
.
join
(
abspath
(
dirname
(
__file__
)),
'
static
'
)
app
=
Flask
(
__name__
,
static_folder
=
STATIC_FOLDER_PATH
)
...
...
This diff is collapsed.
Click to expand it.
zesje/_static_version.py
0 → 100644
+
12
−
0
View file @
ac412beb
# -*- coding: utf-8 -*-
# This file is part of 'miniver': https://github.com/jbweston/miniver
#
# This file will be overwritten by setup.py when a source or binary
# distribution is made. The magic value "__use_git__" is interpreted by
# version.py.
version
=
"
__use_git__
"
# These values are only set if the distribution was created with 'git archive'
refnames
=
"
$Format:%D$
"
git_hash
=
"
$Format:%h$
"
This diff is collapsed.
Click to expand it.
zesje/_version.py
0 → 100644
+
166
−
0
View file @
ac412beb
# -*- coding: utf-8 -*-
# This file is part of 'miniver': https://github.com/jbweston/miniver
#
from
collections
import
namedtuple
import
os
import
subprocess
from
distutils.command.build_py
import
build_py
as
build_py_orig
from
setuptools.command.sdist
import
sdist
as
sdist_orig
Version
=
namedtuple
(
'
Version
'
,
(
'
release
'
,
'
dev
'
,
'
labels
'
))
# No public API
__all__
=
[]
package_root
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
))
package_name
=
os
.
path
.
basename
(
package_root
)
distr_root
=
os
.
path
.
dirname
(
package_root
)
STATIC_VERSION_FILE
=
'
_static_version.py
'
def
get_version
(
version_file
=
STATIC_VERSION_FILE
):
version_info
=
{}
with
open
(
os
.
path
.
join
(
package_root
,
version_file
),
'
rb
'
)
as
f
:
exec
(
f
.
read
(),
{},
version_info
)
version
=
version_info
[
'
version
'
]
if
version
==
"
__use_git__
"
:
version
=
get_version_from_git
()
if
not
version
:
version
=
get_version_from_git_archive
(
version_info
)
if
not
version
:
version
=
Version
(
"
unknown
"
,
None
,
None
)
return
pep440_format
(
version
)
else
:
return
version
def
pep440_format
(
version_info
):
release
,
dev
,
labels
=
version_info
version_parts
=
[
release
]
if
dev
:
if
release
.
endswith
(
'
-dev
'
)
or
release
.
endswith
(
'
.dev
'
):
version_parts
.
append
(
dev
)
else
:
# prefer PEP440 over stric adhesion to semver
version_parts
.
append
(
'
.dev{}
'
.
format
(
dev
))
if
labels
:
version_parts
.
append
(
'
+
'
)
version_parts
.
append
(
"
.
"
.
join
(
labels
))
return
""
.
join
(
version_parts
)
def
get_version_from_git
():
try
:
p
=
subprocess
.
Popen
([
'
git
'
,
'
rev-parse
'
,
'
--show-toplevel
'
],
cwd
=
distr_root
,
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
except
OSError
:
return
if
p
.
wait
()
!=
0
:
return
if
not
os
.
path
.
samefile
(
p
.
communicate
()[
0
].
decode
().
rstrip
(
'
\n
'
),
distr_root
):
# The top-level directory of the current Git repository is not the same
# as the root directory of the distribution: do not extract the
# version from Git.
return
# git describe --first-parent does not take into account tags from branches
# that were merged-in.
for
opts
in
[[
'
--first-parent
'
],
[]]:
try
:
p
=
subprocess
.
Popen
([
'
git
'
,
'
describe
'
,
'
--long
'
]
+
opts
,
cwd
=
distr_root
,
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
except
OSError
:
return
if
p
.
wait
()
==
0
:
break
else
:
return
description
=
p
.
communicate
()[
0
].
decode
().
strip
(
'
v
'
).
rstrip
(
'
\n
'
)
release
,
dev
,
git
=
description
.
rsplit
(
'
-
'
,
2
)
labels
=
[]
if
dev
==
"
0
"
:
dev
=
None
else
:
labels
.
append
(
git
)
try
:
p
=
subprocess
.
Popen
([
'
git
'
,
'
diff
'
,
'
--quiet
'
],
cwd
=
distr_root
)
except
OSError
:
labels
.
append
(
'
confused
'
)
# This should never happen.
else
:
if
p
.
wait
()
==
1
:
labels
.
append
(
'
dirty
'
)
return
Version
(
release
,
dev
,
labels
)
# TODO: change this logic when there is a git pretty-format
# that gives the same output as 'git describe'.
# Currently we can only tell the tag the current commit is
# pointing to, or its hash (with no version info)
# if it is not tagged.
def
get_version_from_git_archive
(
version_info
):
try
:
refnames
=
version_info
[
'
refnames
'
]
git_hash
=
version_info
[
'
git_hash
'
]
except
KeyError
:
# These fields are not present if we are running from an sdist.
# Execution should never reach here, though
return
None
if
git_hash
.
startswith
(
'
$Format
'
)
or
refnames
.
startswith
(
'
$Format
'
):
# variables not expanded during 'git archive'
return
None
VTAG
=
'
tag: v
'
refs
=
set
(
r
.
strip
()
for
r
in
refnames
.
split
(
"
,
"
))
version_tags
=
set
(
r
[
len
(
VTAG
):]
for
r
in
refs
if
r
.
startswith
(
VTAG
))
if
version_tags
:
release
,
*
_
=
sorted
(
version_tags
)
# prefer e.g. "2.0" over "2.0rc1"
return
Version
(
release
,
dev
=
None
,
labels
=
None
)
else
:
return
Version
(
'
unknown
'
,
dev
=
None
,
labels
=
[
'
g{}
'
.
format
(
git_hash
)])
__version__
=
get_version
()
# The following section defines a module global 'cmdclass',
# which can be used from setup.py. The 'package_name' and
# '__version__' module globals are used (but not modified).
def
_write_version
(
fname
):
# This could be a hard link, so try to delete it first. Is there any way
# to do this atomically together with opening?
try
:
os
.
remove
(
fname
)
except
OSError
:
pass
with
open
(
fname
,
'
w
'
)
as
f
:
f
.
write
(
"
# This file has been created by setup.py.
\n
"
"
version =
'
{}
'
\n
"
.
format
(
__version__
))
class
_build_py
(
build_py_orig
):
def
run
(
self
):
super
().
run
()
_write_version
(
os
.
path
.
join
(
self
.
build_lib
,
package_name
,
STATIC_VERSION_FILE
))
class
_sdist
(
sdist_orig
):
def
make_release_tree
(
self
,
base_dir
,
files
):
super
().
make_release_tree
(
base_dir
,
files
)
_write_version
(
os
.
path
.
join
(
base_dir
,
package_name
,
STATIC_VERSION_FILE
))
cmdclass
=
dict
(
sdist
=
_sdist
,
build_py
=
_build_py
)
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