From 8caf9e71fb0c44b3016dbb1459e362d1f0366b74 Mon Sep 17 00:00:00 2001 From: David Doty Date: Sat, 18 Jan 2020 15:09:10 -0800 Subject: [PATCH] set up files needed to publish package to PyPi, and changed installation instructions closes #8 --- LICENSE.txt | 17 ++++++++++++++ MANIFEST | 6 +++++ README.md | 46 ++++++++++++++++++------------------- dist/scadnano-0.0.1.tar.gz | Bin 0 -> 39145 bytes setup.cfg | 2 ++ setup.py | 12 ++++++---- 6 files changed, 54 insertions(+), 29 deletions(-) create mode 100644 LICENSE.txt create mode 100644 MANIFEST create mode 100644 dist/scadnano-0.0.1.tar.gz create mode 100644 setup.cfg diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..12b72e42 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,17 @@ +MIT License +Copyright (c) 2020 YOUR NAME +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 00000000..0e36209c --- /dev/null +++ b/MANIFEST @@ -0,0 +1,6 @@ +# file GENERATED by distutils, do NOT edit +setup.cfg +setup.py +scadnano\__init__.py +scadnano\origami_rectangle.py +scadnano\scadnano.py diff --git a/README.md b/README.md index 3f21ed50..cd6d3d6d 100644 --- a/README.md +++ b/README.md @@ -8,40 +8,38 @@ This module is used to write Python scripts outputting *.dna files readable by [ The scadnano Python package requires [Python version 3.7](https://www.python.org/downloads/) or later. -There are two ways you can install it: +There are two ways you can install the scadnano Python package: -### pip +1. pip -1. If your Python installation does not already have pip installed, you may have to install it. -Executing [this Python script](https://bootstrap.pypa.io/get-pip.py) should work; -see also -https://docs.python.org/3/installing/index.html -or -https://www.liquidweb.com/kb/install-pip-windows/. - -2. Clone this repository by downloading [Git](https://git-scm.com/) and executing the following at the command line: + Use pip to install the package by executing the following at the command line: ```console - git clone https://github.com/UC-Davis-molecular-computing/scadnano-python-package.git + pip install scadnano ``` + If your Python installation does not already have pip installed, you may have to install it. + Executing [this Python script](https://bootstrap.pypa.io/get-pip.py) should work; + see also + https://docs.python.org/3/installing/index.html + or + https://www.liquidweb.com/kb/install-pip-windows/. -3. Use pip to install the package from the local repository by executing the following at the command line from the same directory where you executed the git command above: - ```console - pip install -e scadnano-python-package/ - ``` +2. download -### download -As a simple alternative, you can download and place the following file(s) (located in the [scadnano/ subfolder](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/tree/master/scadnano)) in your PYTHONPATH (e.g., in the same directory as the scripts you are running): + As a simple alternative, you can download and place the following file(s) (located in the [scadnano/ subfolder](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/tree/master/scadnano)) in your PYTHONPATH (e.g., in the same directory as the scripts you are running): -* *required*: [scadnano.py](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/blob/master/scadnano/scadnano.py) -* *optional*: [origami_rectangle.py](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/blob/master/scadnano/origami_rectangle.py); This can help create origami rectangles, but it is not necessary to use scadnano. - -## Examples - -Several example scripts are located in the [examples/](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/tree/master/examples) subfolder. Their output is contained in the [examples/output_designs/](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/tree/master/examples/output_designs) subfolder. + * *required*: [scadnano.py](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/blob/master/scadnano/scadnano.py) + * *optional*: [origami_rectangle.py](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/blob/master/scadnano/origami_rectangle.py); This can help create origami rectangles, but it is not necessary to use scadnano. ## Documentation Online documentation of the package API is located here: -https://web.cs.ucdavis.edu/~doty/scadnano/docs/ \ No newline at end of file +https://web.cs.ucdavis.edu/~doty/scadnano/docs/ + +## Examples + +Several example scripts are located in the +[examples/](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/tree/master/examples) subfolder. +Their output is contained in the +[examples/output_designs/](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/tree/master/examples/output_designs) subfolder. diff --git a/dist/scadnano-0.0.1.tar.gz b/dist/scadnano-0.0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f32da9612ccd4d5f7ff999fb17fcb9e743638331 GIT binary patch literal 39145 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 J2b=(?0stjz%Dn&p literal 0 HcmV?d00001 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..224a7795 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,2 @@ +[metadata] +description-file = README.md \ No newline at end of file diff --git a/setup.py b/setup.py index cd7abeb7..0bbeda13 100644 --- a/setup.py +++ b/setup.py @@ -3,10 +3,12 @@ from distutils.core import setup setup(name='scadnano', + packages=['scadnano'], version='0.0.1', - description="", - author="", - author_email="", - url="", - packages=['scadnano'] + license='MIT', + description="Python scripting library for generating designs readable by scadnano.", + author="David Doty", + author_email="doty@ucdavis.edu", + url="https://github.com/UC-Davis-molecular-computing/scadnano-python-package", + download_url = 'https://github.com/UC-Davis-molecular-computing/scadnano-python-package/???', )