Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tbgl
tools
mrdna
Commits
0ea91b45
Commit
0ea91b45
authored
Oct 01, 2018
by
cmaffeo2
Browse files
Automated versioning
parent
e86685fe
Changes
8
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
0ea91b45
...
...
@@ -3,3 +3,4 @@ __pycache__
/build
*.egg-info
/mrdna/RELEASE-VERSION
MANIFEST.in
View file @
0ea91b45
recursive-include mrdna/resources *
\ No newline at end of file
include mrdna/RELEASE-VERSION
include mrdna/README.md
include mrdna/LICENSE
recursive-include mrdna/resources *
bin/mrdna
View file @
0ea91b45
...
...
@@ -4,6 +4,7 @@
import
argparse
import
re
import
pathlib
from
mrdna
import
__version__
as
__version__
from
mrdna
.
simulate
import
multiresolution_simulation
as
simulate
parser
=
argparse
.
ArgumentParser
(
prog
=
"mrdna"
,
...
...
@@ -31,6 +32,10 @@ parser.add_argument('--draw-cylinders', action='store_true',
parser
.
add_argument
(
'--draw-tubes'
,
action
=
'store_true'
,
help
=
'Whether or not to draw the tubes'
)
parser
.
add_argument
(
'--version'
,
action
=
'version'
,
version
=
'%(prog)s {}'
.
format
(
__version__
),
help
=
'Print the version of mrdna'
)
parser
.
add_argument
(
'input_file'
,
type
=
str
,
help
=
"""Any of the following:
(1) a cadnano JSON file;
...
...
mrdna/LICENSE
0 → 120000
View file @
0ea91b45
../LICENSE
\ No newline at end of file
mrdna/README.md
0 → 120000
View file @
0ea91b45
../README.md
\ No newline at end of file
mrdna/__init__.py
View file @
0ea91b45
from
pathlib
import
Path
__version__
=
"0.1.dev0"
from
.version
import
get_version
__version__
=
get_version
()
_RESOURCE_DIR
=
Path
(
__file__
).
parent
/
'resources'
def
get_resource_path
(
relative_path
):
...
...
mrdna/version.py
0 → 100644
View file @
0ea91b45
# -*- coding: utf-8 -*-
# Author: Douglas Creager <dcreager@dcreager.net>
# This file is placed into the public domain.
# Calculates the current version number. If possible, this is the
# output of “git describe”, modified to conform to the versioning
# scheme that setuptools uses. If “git describe” returns an error
# (most likely because we're in an unpacked copy of a release tarball,
# rather than in a git working copy), then we fall back on reading the
# contents of the RELEASE-VERSION file.
#
# To use this script, simply import it your setup.py file, and use the
# results of get_git_version() as your package version:
#
# from version import *
#
# setup(
# version=get_git_version(),
# .
# .
# .
# )
#
#
# This will automatically update the RELEASE-VERSION file, if
# necessary. Note that the RELEASE-VERSION file should *not* be
# checked into git; please add it to your top-level .gitignore file.
#
# You'll probably want to distribute the RELEASE-VERSION file in your
# sdist tarballs; to do this, just create a MANIFEST.in file that
# contains the following line:
#
# include RELEASE-VERSION
__all__
=
(
"get_version"
)
from
pathlib
import
Path
import
subprocess
from
subprocess
import
Popen
,
PIPE
_version_file
=
Path
(
__file__
).
parent
/
"RELEASE-VERSION"
def
check_git_repository
():
try
:
remotes
=
subprocess
.
check_output
([
'git'
,
'remote'
,
'-v'
],
stderr
=
subprocess
.
STDOUT
)
return
b
'mrdna.git'
in
remotes
except
:
return
False
def
call_git_describe
(
abbrev
):
try
:
p
=
Popen
([
'git'
,
'describe'
,
'--tags'
,
'--abbrev=%d'
%
abbrev
],
stdout
=
PIPE
,
stderr
=
PIPE
)
p
.
stderr
.
close
()
line
=
p
.
stdout
.
readlines
()[
0
]
return
line
.
strip
().
decode
(
'utf-8'
)
except
:
return
None
def
is_dirty
():
try
:
p
=
Popen
([
"git"
,
"diff-index"
,
"--name-only"
,
"HEAD"
],
stdout
=
PIPE
,
stderr
=
PIPE
)
p
.
stderr
.
close
()
lines
=
p
.
stdout
.
readlines
()
return
len
(
lines
)
>
0
except
:
return
False
def
read_release_version
():
try
:
f
=
open
(
_version_file
,
"r"
)
try
:
version
=
f
.
readlines
()[
0
]
return
version
.
strip
()
finally
:
f
.
close
()
except
:
return
None
def
write_release_version
(
version
):
f
=
open
(
_version_file
,
"w"
)
f
.
write
(
"%s
\n
"
%
version
)
f
.
close
()
def
get_version
(
abbrev
=
7
):
# Read in the version that's currently in RELEASE-VERSION.
release_version
=
read_release_version
()
if
not
check_git_repository
():
return
release_version
# raise Exception(__function__ +" called from outside a version controlled source repository")
# First try to get the current version using “git describe”.
split_version
=
call_git_describe
(
abbrev
).
split
(
"-"
)
version
=
split_version
[
0
]
if
len
(
split_version
)
>
1
and
int
(
split_version
[
-
2
])
>
0
:
version
+=
".dev{}"
.
format
(
int
(
split_version
[
-
2
]))
# If that doesn't work, fall back on the value that's in
# RELEASE-VERSION.
if
version
is
None
:
version
=
release_version
# If we still don't have anything, that's an error.
if
version
is
None
:
raise
ValueError
(
"Cannot find the version number!"
)
# If the current version is different from what's in the
# RELEASE-VERSION file, update the file to be current.
if
version
!=
release_version
:
write_release_version
(
version
)
# Finally, return the current version.
return
version
if
__name__
==
"__main__"
:
print
(
get_git_version
()
)
def
read_version_file
(
filename
):
with
open
(
filename
)
as
fh
:
version
=
fh
.
readlines
()[
0
].
strip
()
return
version
try
:
version
=
read_version_file
(
_version_file
)
except
:
try
:
version
=
read_version_file
(
_version_file
)
except
:
version
=
"Unknown"
setup.py
View file @
0ea91b45
...
...
@@ -6,10 +6,11 @@ with open("README.md", "r") as fh:
with
open
(
"LICENSE"
,
"r"
)
as
fh
:
license
=
fh
.
read
()
from
mrdna.version
import
get_version
setuptools
.
setup
(
name
=
"mrdna"
,
version
=
"0.1.dev0"
,
version
=
get_version
()
,
author
=
"Christopher Maffeo"
,
author_email
=
"cmaffeo2@illinois.edu"
,
description
=
"Multi-resolution DNA simulations"
,
...
...
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment