Giter Club home page Giter Club logo

make-tom's Introduction

make-tom

make-tom-sh is a shell script for creating a TOM Toolkit-based TOM in a virtual environment. It's useful both as a way to spin up an "out-of-the-box" TOM for evaluation and as a reference for how to create a TOM for further customization and development.

Usage

The make-tom.sh script is all you need. Download it, make it executable (chmod +x make-tom.sh), and run it:

  ./make-tom.sh my_tom

This will create the directory my_tom in your current working directory with a virtural environment (my_tom/env) and TOM Toolkit (Django) project.

The basic workflow executed by the make-tom.sh script is:

  1. Create a Python virtual environment and activate it.
  2. From PyPI, install tomtoolkit and its dependencies (including Django) into the virtual environment.
  3. Use the django-admin startproject command to create a basic Django project.
  4. Add the one-time utility, tom_setup, to the basic Django project's settings.py INSTALLED_APPS list and run its tom_setup management command.

When the make-tom.sh script is finished, you'll see (for example) the following output:

Here is the directory we created:
/path/to/your/cwd//my_tom
.
├── data
├── db.sqlite3
├── manage.py
├── my_tom
│   ├── asgi.py
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── static
├── templates
└── tmp

6 directories, 7 files

Next steps:
  1. cd to the new directory. 
  2. activate the virtual environment with 'source ./env/bin/activate'. 
  3. Start the Django development server with './manage.py runserver'. 
  4. Point a browser to the URL given by the 'runserver' management command.

Tips and Trouble-shooting

Here's a way to generate a uniquely named TOM, which can be useful when you repeatedly want to evaluate or experiment with something with the intention of deleting the directory when you're done:

./make-tom.sh name_of_your_tom_`date +'%Y%h%d_%0k%M'`

This will create a uniquely named TOM Toolkit directory called, for example, name_of_your_tom_2023Dec13_1751.

make-tom's People

Contributors

phycodurus avatar

Watchers

Mark Bowman avatar  avatar Rachel Street avatar

make-tom's Issues

Testing make_tom under Mac OS

I cloned this repo to a new directory on my Macbook Pro, running macOS Sonoma v14.1.2. I'll paste the full output here for reference:

(base) Rachels-MacBook-Pro-2:make-tom rstreet1$ ./make-tom.sh my_tom
Checking for your installed Python...
Found Python 3.9.5 at /Users/rstreet1/opt/miniconda3/bin/python
Do you want to use the Python 3.9.5 at /Users/rstreet1/opt/miniconda3/bin/python?
-n Type 'yes' or the pathname of an alternative python executable: (yes/</path/to/python>)? [yes]
yes

Using Python 3.9.5 at /Users/rstreet1/opt/miniconda3/bin/python to create
create TOM: my_tom_2023Dec12_1532 in directory my_tom_2023Dec12_1532
-n Do you want to continue (y/n)? [n]:
y
Continuing...

Creating and activating the virtual environment...
Requirement already satisfied: pip in ./env/lib/python3.9/site-packages (21.1.1)
Collecting pip
Using cached pip-23.3.1-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.1.1
Uninstalling pip-21.1.1:
Successfully uninstalled pip-21.1.1
Successfully installed pip-23.3.1

Installing tomtoolkit and dependencies into the virtual environment...
Collecting tomtoolkit
Downloading tomtoolkit-2.15.14-py3-none-any.whl.metadata (5.9 kB)
Collecting astroplan<0.10,>=0.8 (from tomtoolkit)
Using cached astroplan-0.9.1.tar.gz (140 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting astropy<6,>=3 (from tomtoolkit)
Using cached astropy-5.3.4-cp39-cp39-macosx_10_9_x86_64.whl.metadata (9.4 kB)
Collecting astroquery<1 (from tomtoolkit)
Using cached astroquery-0.4.6-py3-none-any.whl (4.5 MB)
Collecting beautifulsoup4<5 (from tomtoolkit)
Using cached beautifulsoup4-4.12.2-py3-none-any.whl (142 kB)
Collecting crispy-bootstrap4<2023.2,>=2023.1 (from tomtoolkit)
Downloading crispy_bootstrap4-2023.1-py3-none-any.whl.metadata (2.3 kB)
Collecting django<5 (from tomtoolkit)
Downloading Django-4.2.8-py3-none-any.whl.metadata (4.2 kB)
Collecting django-bootstrap4<24,>3 (from tomtoolkit)
Using cached django_bootstrap4-23.2-py3-none-any.whl.metadata (3.8 kB)
Collecting django-contrib-comments<3.0,>=2.0 (from tomtoolkit)
Using cached django_contrib_comments-2.2.0-py3-none-any.whl (416 kB)
Collecting django-crispy-forms<3.0,>=2.0 (from tomtoolkit)
Using cached django_crispy_forms-2.1-py3-none-any.whl.metadata (5.0 kB)
Collecting django-dramatiq<0.12,>=0.11 (from tomtoolkit)
Downloading django_dramatiq-0.11.6-py3-none-any.whl.metadata (1.1 kB)
Collecting django-extensions<4,>=3 (from tomtoolkit)
Using cached django_extensions-3.2.3-py3-none-any.whl.metadata (6.3 kB)
Collecting django-filter<24,>=23 (from tomtoolkit)
Using cached django_filter-23.5-py3-none-any.whl.metadata (5.2 kB)
Collecting django-gravatar2<2,>=1 (from tomtoolkit)
Using cached django_gravatar2-1.4.4-py2.py3-none-any.whl (7.9 kB)
Collecting django-guardian<3,>=2 (from tomtoolkit)
Using cached django_guardian-2.4.0-py3-none-any.whl (106 kB)
Collecting djangorestframework<4 (from tomtoolkit)
Using cached djangorestframework-3.14.0-py3-none-any.whl (1.1 MB)
Collecting dramatiq<2.0.0 (from dramatiq[redis,watch]<2.0.0->tomtoolkit)
Downloading dramatiq-1.15.0-py3-none-any.whl.metadata (5.0 kB)
Collecting fits2image<0.5,>=0.4 (from tomtoolkit)
Downloading fits2image-0.4.7-py3-none-any.whl.metadata (329 bytes)
Collecting markdown<4 (from tomtoolkit)
Downloading Markdown-3.5.1-py3-none-any.whl.metadata (7.1 kB)
Collecting numpy<1.25,>=1.24 (from tomtoolkit)
Downloading numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl.metadata (5.6 kB)
Collecting pillow<11.0,>9.2 (from tomtoolkit)
Downloading Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl.metadata (9.5 kB)
Collecting plotly<6 (from tomtoolkit)
Using cached plotly-5.18.0-py3-none-any.whl.metadata (7.0 kB)
Collecting python-dateutil<3 (from tomtoolkit)
Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting requests<3 (from tomtoolkit)
Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting specutils<2 (from tomtoolkit)
Using cached specutils-1.12.0-py3-none-any.whl.metadata (6.0 kB)
Collecting pytz (from astroplan<0.10,>=0.8->tomtoolkit)
Using cached pytz-2023.3.post1-py2.py3-none-any.whl.metadata (22 kB)
Collecting six (from astroplan<0.10,>=0.8->tomtoolkit)
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting pyerfa>=2.0 (from astropy<6,>=3->tomtoolkit)
Downloading pyerfa-2.0.1.1-cp39-abi3-macosx_10_9_x86_64.whl.metadata (5.5 kB)
Collecting PyYAML>=3.13 (from astropy<6,>=3->tomtoolkit)
Downloading PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl.metadata (2.1 kB)
Collecting packaging>=19.0 (from astropy<6,>=3->tomtoolkit)
Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting html5lib>=0.999 (from astroquery<1->tomtoolkit)
Using cached html5lib-1.1-py2.py3-none-any.whl (112 kB)
Collecting keyring>=4.0 (from astroquery<1->tomtoolkit)
Downloading keyring-24.3.0-py3-none-any.whl.metadata (20 kB)
Collecting pyvo>=1.1 (from astroquery<1->tomtoolkit)
Using cached pyvo-1.4.2-py3-none-any.whl.metadata (4.2 kB)
Collecting soupsieve>1.2 (from beautifulsoup4<5->tomtoolkit)
Using cached soupsieve-2.5-py3-none-any.whl.metadata (4.7 kB)
Collecting asgiref<4,>=3.6.0 (from django<5->tomtoolkit)
Using cached asgiref-3.7.2-py3-none-any.whl.metadata (9.2 kB)
Collecting sqlparse>=0.3.1 (from django<5->tomtoolkit)
Using cached sqlparse-0.4.4-py3-none-any.whl (41 kB)
Collecting prometheus-client>=0.2 (from dramatiq<2.0.0->dramatiq[redis,watch]<2.0.0->tomtoolkit)
Downloading prometheus_client-0.19.0-py3-none-any.whl.metadata (1.8 kB)
Collecting watchdog (from dramatiq[redis,watch]<2.0.0->tomtoolkit)
Downloading watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl (91 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 91.2/91.2 kB 2.7 MB/s eta 0:00:00
Collecting watchdog-gevent (from dramatiq[redis,watch]<2.0.0->tomtoolkit)
Using cached watchdog_gevent-0.1.1-py3-none-any.whl (3.7 kB)
Collecting redis<6.0,>=2.0 (from dramatiq[redis,watch]<2.0.0->tomtoolkit)
Downloading redis-5.0.1-py3-none-any.whl.metadata (8.9 kB)
Collecting importlib-metadata>=4.4 (from markdown<4->tomtoolkit)
Downloading importlib_metadata-7.0.0-py3-none-any.whl.metadata (4.9 kB)
Collecting tenacity>=6.2.0 (from plotly<6->tomtoolkit)
Using cached tenacity-8.2.3-py3-none-any.whl.metadata (1.0 kB)
Collecting charset-normalizer<4,>=2 (from requests<3->tomtoolkit)
Downloading charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests<3->tomtoolkit)
Downloading idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests<3->tomtoolkit)
Downloading urllib3-2.1.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests<3->tomtoolkit)
Downloading certifi-2023.11.17-py3-none-any.whl.metadata (2.2 kB)
Collecting scipy>=1.3 (from specutils<2->tomtoolkit)
Downloading scipy-1.11.4-cp39-cp39-macosx_10_9_x86_64.whl.metadata (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB 1.9 MB/s eta 0:00:00
Collecting gwcs>=0.18 (from specutils<2->tomtoolkit)
Downloading gwcs-0.20.0-py3-none-any.whl.metadata (6.2 kB)
Collecting asdf-astropy>=0.3 (from specutils<2->tomtoolkit)
Downloading asdf_astropy-0.5.0-py3-none-any.whl.metadata (7.3 kB)
Collecting asdf>=2.14.4 (from specutils<2->tomtoolkit)
Downloading asdf-3.0.1-py3-none-any.whl.metadata (14 kB)
Collecting ndcube>=2.0 (from specutils<2->tomtoolkit)
Downloading ndcube-2.2.0-py3-none-any.whl.metadata (6.8 kB)
Collecting asdf-standard>=1.0.1 (from asdf>=2.14.4->specutils<2->tomtoolkit)
Using cached asdf_standard-1.0.3-py3-none-any.whl (71 kB)
Collecting asdf-transform-schemas>=0.3 (from asdf>=2.14.4->specutils<2->tomtoolkit)
Downloading asdf_transform_schemas-0.4.0-py3-none-any.whl.metadata (4.1 kB)
Collecting asdf-unit-schemas>=0.1 (from asdf>=2.14.4->specutils<2->tomtoolkit)
Using cached asdf_unit_schemas-0.1.0-py3-none-any.whl (11 kB)
Collecting jmespath>=0.6.2 (from asdf>=2.14.4->specutils<2->tomtoolkit)
Using cached jmespath-1.0.1-py3-none-any.whl (20 kB)
Collecting semantic-version>=2.8 (from asdf>=2.14.4->specutils<2->tomtoolkit)
Using cached semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
Collecting attrs>=20.1.0 (from asdf>=2.14.4->specutils<2->tomtoolkit)
Using cached attrs-23.1.0-py3-none-any.whl (61 kB)
Collecting asdf-coordinates-schemas>=0.1 (from asdf-astropy>=0.3->specutils<2->tomtoolkit)
Using cached asdf_coordinates_schemas-0.2.0-py3-none-any.whl (19 kB)
Collecting typing-extensions>=4 (from asgiref<4,>=3.6.0->django<5->tomtoolkit)
Using cached typing_extensions-4.9.0-py3-none-any.whl.metadata (3.0 kB)
Collecting asdf-wcs-schemas (from gwcs>=0.18->specutils<2->tomtoolkit)
Downloading asdf_wcs_schemas-0.3.0-py3-none-any.whl.metadata (4.0 kB)
Collecting webencodings (from html5lib>=0.999->astroquery<1->tomtoolkit)
Using cached webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Collecting zipp>=0.5 (from importlib-metadata>=4.4->markdown<4->tomtoolkit)
Using cached zipp-3.17.0-py3-none-any.whl.metadata (3.7 kB)
Collecting jaraco.classes (from keyring>=4.0->astroquery<1->tomtoolkit)
Using cached jaraco.classes-3.3.0-py3-none-any.whl.metadata (2.9 kB)
Collecting async-timeout>=4.0.2 (from redis<6.0,>=2.0->dramatiq[redis,watch]<2.0.0->tomtoolkit)
Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Collecting gevent>=1.1 (from watchdog-gevent->dramatiq[redis,watch]<2.0.0->tomtoolkit)
Downloading gevent-23.9.1.tar.gz (5.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.8/5.8 MB 22.5 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Collecting zope.event (from gevent>=1.1->watchdog-gevent->dramatiq[redis,watch]<2.0.0->tomtoolkit)
Using cached zope.event-5.0-py3-none-any.whl.metadata (4.4 kB)
Collecting zope.interface (from gevent>=1.1->watchdog-gevent->dramatiq[redis,watch]<2.0.0->tomtoolkit)
Downloading zope.interface-6.1-cp39-cp39-macosx_10_9_x86_64.whl.metadata (41 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.7/41.7 kB 1.1 MB/s eta 0:00:00
Collecting greenlet>=2.0.0 (from gevent>=1.1->watchdog-gevent->dramatiq[redis,watch]<2.0.0->tomtoolkit)
Using cached greenlet-3.0.2-cp39-cp39-macosx_10_9_x86_64.whl
Collecting more-itertools (from jaraco.classes->keyring>=4.0->astroquery<1->tomtoolkit)
Using cached more_itertools-10.1.0-py3-none-any.whl.metadata (33 kB)
Requirement already satisfied: setuptools in ./env/lib/python3.9/site-packages (from zope.event->gevent>=1.1->watchdog-gevent->dramatiq[redis,watch]<2.0.0->tomtoolkit) (56.0.0)
Downloading tomtoolkit-2.15.14-py3-none-any.whl (595 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 595.5/595.5 kB 13.3 MB/s eta 0:00:00
Using cached astropy-5.3.4-cp39-cp39-macosx_10_9_x86_64.whl (7.1 MB)
Downloading crispy_bootstrap4-2023.1-py3-none-any.whl (22 kB)
Downloading Django-4.2.8-py3-none-any.whl (8.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.0/8.0 MB 26.7 MB/s eta 0:00:00
Using cached django_bootstrap4-23.2-py3-none-any.whl (24 kB)
Using cached django_crispy_forms-2.1-py3-none-any.whl (31 kB)
Downloading django_dramatiq-0.11.6-py3-none-any.whl (11 kB)
Using cached django_extensions-3.2.3-py3-none-any.whl (229 kB)
Using cached django_filter-23.5-py3-none-any.whl (94 kB)
Downloading dramatiq-1.15.0-py3-none-any.whl (119 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 119.9/119.9 kB 4.1 MB/s eta 0:00:00
Downloading fits2image-0.4.7-py3-none-any.whl (6.4 kB)
Downloading Markdown-3.5.1-py3-none-any.whl (102 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 102.2/102.2 kB 3.5 MB/s eta 0:00:00
Downloading numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl (19.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.8/19.8 MB 17.0 MB/s eta 0:00:00
Downloading Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl (3.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 13.8 MB/s eta 0:00:00
Using cached plotly-5.18.0-py3-none-any.whl (15.6 MB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached specutils-1.12.0-py3-none-any.whl (203 kB)
Downloading asdf-3.0.1-py3-none-any.whl (957 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 957.5/957.5 kB 8.7 MB/s eta 0:00:00
Downloading asdf_astropy-0.5.0-py3-none-any.whl (76 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.8/76.8 kB 2.4 MB/s eta 0:00:00
Using cached asgiref-3.7.2-py3-none-any.whl (24 kB)
Downloading certifi-2023.11.17-py3-none-any.whl (162 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 kB 5.5 MB/s eta 0:00:00
Downloading charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl (122 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 122.5/122.5 kB 4.1 MB/s eta 0:00:00
Downloading gwcs-0.20.0-py3-none-any.whl (155 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.3/155.3 kB 5.4 MB/s eta 0:00:00
Downloading idna-3.6-py3-none-any.whl (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.6/61.6 kB 2.1 MB/s eta 0:00:00
Downloading importlib_metadata-7.0.0-py3-none-any.whl (23 kB)
Downloading keyring-24.3.0-py3-none-any.whl (38 kB)
Downloading ndcube-2.2.0-py3-none-any.whl (122 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 123.0/123.0 kB 4.1 MB/s eta 0:00:00
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Downloading prometheus_client-0.19.0-py3-none-any.whl (54 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.2/54.2 kB 1.8 MB/s eta 0:00:00
Downloading pyerfa-2.0.1.1-cp39-abi3-macosx_10_9_x86_64.whl (342 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 342.9/342.9 kB 10.8 MB/s eta 0:00:00
Using cached pyvo-1.4.2-py3-none-any.whl (888 kB)
Downloading PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl (197 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 197.8/197.8 kB 5.7 MB/s eta 0:00:00
Downloading redis-5.0.1-py3-none-any.whl (250 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 250.3/250.3 kB 8.1 MB/s eta 0:00:00
Downloading scipy-1.11.4-cp39-cp39-macosx_10_9_x86_64.whl (37.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.3/37.3 MB 20.9 MB/s eta 0:00:00
Using cached soupsieve-2.5-py3-none-any.whl (36 kB)
Using cached tenacity-8.2.3-py3-none-any.whl (24 kB)
Downloading urllib3-2.1.0-py3-none-any.whl (104 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 104.6/104.6 kB 3.2 MB/s eta 0:00:00
Using cached pytz-2023.3.post1-py2.py3-none-any.whl (502 kB)
Downloading asdf_transform_schemas-0.4.0-py3-none-any.whl (196 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.2/196.2 kB 5.7 MB/s eta 0:00:00
Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Using cached typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Using cached zipp-3.17.0-py3-none-any.whl (7.4 kB)
Downloading asdf_wcs_schemas-0.3.0-py3-none-any.whl (32 kB)
Using cached jaraco.classes-3.3.0-py3-none-any.whl (5.9 kB)
Using cached more_itertools-10.1.0-py3-none-any.whl (55 kB)
Using cached zope.event-5.0-py3-none-any.whl (6.8 kB)
Downloading zope.interface-6.1-cp39-cp39-macosx_10_9_x86_64.whl (202 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 202.4/202.4 kB 7.4 MB/s eta 0:00:00
Building wheels for collected packages: astroplan, gevent
Building wheel for astroplan (pyproject.toml) ... done
Created wheel for astroplan: filename=astroplan-0.9.1-py3-none-any.whl size=84452 sha256=e75526f24f4c51c45237d874e3602a5a47cce4b12ca140a4732459275e437418
Stored in directory: /Users/rstreet1/Library/Caches/pip/wheels/39/1b/48/c16a7d8d98ef5c6a48d5918e5d7c251f3d34ae824d8c44c206
Building wheel for gevent (pyproject.toml) ... done
Created wheel for gevent: filename=gevent-23.9.1-cp39-cp39-macosx_10_9_x86_64.whl size=1728548 sha256=d3538500c57ab4670f11cfc7cd086f674a901f486891aba0398f335cc270cffb
Stored in directory: /Users/rstreet1/Library/Caches/pip/wheels/1e/b0/a7/4459144053368c44fa92e2b562d03105171c1fc542128a89f8
Successfully built astroplan gevent
Installing collected packages: webencodings, pytz, django-gravatar2, zope.interface, zope.event, zipp, watchdog, urllib3, typing-extensions, tenacity, sqlparse, soupsieve, six, semantic-version, PyYAML, prometheus-client, pillow, packaging, numpy, more-itertools, jmespath, idna, greenlet, charset-normalizer, certifi, attrs, async-timeout, asdf-standard, scipy, requests, redis, python-dateutil, pyerfa, plotly, jaraco.classes, importlib-metadata, html5lib, gevent, dramatiq, beautifulsoup4, asgiref, asdf-unit-schemas, asdf-transform-schemas, watchdog-gevent, markdown, keyring, django, astropy, asdf-wcs-schemas, asdf, pyvo, fits2image, djangorestframework, django-guardian, django-filter, django-extensions, django-dramatiq, django-crispy-forms, django-contrib-comments, django-bootstrap4, astroplan, asdf-coordinates-schemas, crispy-bootstrap4, astroquery, asdf-astropy, gwcs, ndcube, specutils, tomtoolkit
Successfully installed PyYAML-6.0.1 asdf-3.0.1 asdf-astropy-0.5.0 asdf-coordinates-schemas-0.2.0 asdf-standard-1.0.3 asdf-transform-schemas-0.4.0 asdf-unit-schemas-0.1.0 asdf-wcs-schemas-0.3.0 asgiref-3.7.2 astroplan-0.9.1 astropy-5.3.4 astroquery-0.4.6 async-timeout-4.0.3 attrs-23.1.0 beautifulsoup4-4.12.2 certifi-2023.11.17 charset-normalizer-3.3.2 crispy-bootstrap4-2023.1 django-4.2.8 django-bootstrap4-23.2 django-contrib-comments-2.2.0 django-crispy-forms-2.1 django-dramatiq-0.11.6 django-extensions-3.2.3 django-filter-23.5 django-gravatar2-1.4.4 django-guardian-2.4.0 djangorestframework-3.14.0 dramatiq-1.15.0 fits2image-0.4.7 gevent-23.9.1 greenlet-3.0.2 gwcs-0.20.0 html5lib-1.1 idna-3.6 importlib-metadata-7.0.0 jaraco.classes-3.3.0 jmespath-1.0.1 keyring-24.3.0 markdown-3.5.1 more-itertools-10.1.0 ndcube-2.2.0 numpy-1.24.4 packaging-23.2 pillow-10.1.0 plotly-5.18.0 prometheus-client-0.19.0 pyerfa-2.0.1.1 python-dateutil-2.8.2 pytz-2023.3.post1 pyvo-1.4.2 redis-5.0.1 requests-2.31.0 scipy-1.11.4 semantic-version-2.10.0 six-1.16.0 soupsieve-2.5 specutils-1.12.0 sqlparse-0.4.4 tenacity-8.2.3 tomtoolkit-2.15.14 typing-extensions-4.9.0 urllib3-2.1.0 watchdog-3.0.0 watchdog-gevent-0.1.1 webencodings-0.5.1 zipp-3.17.0 zope.event-5.0 zope.interface-6.1

Creating the base Django project...

Configuring the sqlite3 database for the base Django project...
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK

Adding tom_setup to the settings.py INSTALLED_APPS list...
sed: -e: No such file or directory

Running the one-time tom_setup management command...
Unknown command: 'tom_setup'
Type 'manage.py help' for usage.

Configuring the sqlite3 database for TOMToolkit...
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
No migrations to apply.

Here is the directory we created:
/Users/rstreet1/software/make_tom_test/make-tom/my_tom_2023Dec12_1532
./make-tom.sh: line 154: tree: command not found

Next steps:

  1. cd to the new directory.
  2. activate the virtual environment with 'source ./env/bin/activate'.
  3. Start the Django development server with './manage.py runserver'.
  4. Point a browser to the URL given by the 'runserver' management command.
    (base) Rachels-MacBook-Pro-2:make-tom rstreet1$

Tom "date_time" should be optional

I understand how useful including a date-time stamp is for testing purposes, but most people will not want expect that when they type

./make-tom.sh awesome_tom

that they will get awesome_tom_random_datetime instead.

This seems to happen by default for me, even though it is implied in the Readme that it will only be the name I input.

This is further implied by the instructions for how to add a datetime to the name at the end of the readme.

Error and failure handling

The "next steps" should only be displayed if everything was properly installed and the setup worked.
We should have some kind of notification if any stage of the script failed to operate as expected.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.