pinginstaller 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pinginstaller-1.0.0/LICENSE +21 -0
- pinginstaller-1.0.0/PKG-INFO +103 -0
- pinginstaller-1.0.0/README.md +80 -0
- pinginstaller-1.0.0/pinginstaller/Install_Update_PINGMapper.py +103 -0
- pinginstaller-1.0.0/pinginstaller/__init__.py +2 -0
- pinginstaller-1.0.0/pinginstaller/__main__.py +25 -0
- pinginstaller-1.0.0/pinginstaller/download_yml.py +20 -0
- pinginstaller-1.0.0/pinginstaller/version.py +1 -0
- pinginstaller-1.0.0/pinginstaller.egg-info/PKG-INFO +103 -0
- pinginstaller-1.0.0/pinginstaller.egg-info/SOURCES.txt +12 -0
- pinginstaller-1.0.0/pinginstaller.egg-info/dependency_links.txt +1 -0
- pinginstaller-1.0.0/pinginstaller.egg-info/top_level.txt +1 -0
- pinginstaller-1.0.0/setup.cfg +4 -0
- pinginstaller-1.0.0/setup.py +51 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Cameron Bodine
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: pinginstaller
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Light-weight interface for running PING ecosystem (PINGMapper, etc.)
|
|
5
|
+
Author: Cameron Bodine
|
|
6
|
+
Author-email: bodine.cs@gmail.email
|
|
7
|
+
Project-URL: Issues, https://github.com/CameronBodine/PINGInstaller/issues
|
|
8
|
+
Project-URL: GitHub, https://github.com/CameronBodine/PINGInstaller
|
|
9
|
+
Project-URL: Homepage, https://cameronbodine.github.io/PINGMapper/
|
|
10
|
+
Keywords: pingmapper,sonar,ecology,remotesensing,sidescan,sidescan-sonar,aquatic,humminbird,lowrance,gis,oceanography,limnology
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Oceanography
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Hydrology
|
|
20
|
+
Requires-Python: >3
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
|
|
24
|
+
# PINGInstaller
|
|
25
|
+
Light-weight application for installing [PINGMapper](https://github.com/CameronBodine/PINGMapper) and associated packages. `PINGInstaller` is designed to install a `conda` environment from a yml specified as a URL or localy hosted yml.
|
|
26
|
+
|
|
27
|
+
Example yml file structure:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
name: ping
|
|
31
|
+
channels:
|
|
32
|
+
- conda-forge
|
|
33
|
+
- defaults
|
|
34
|
+
dependencies:
|
|
35
|
+
- python < 3.13
|
|
36
|
+
- gdal
|
|
37
|
+
- numpy
|
|
38
|
+
- git
|
|
39
|
+
- pandas
|
|
40
|
+
- geopandas
|
|
41
|
+
- pyproj
|
|
42
|
+
- scikit-image
|
|
43
|
+
- joblib
|
|
44
|
+
- matplotlib
|
|
45
|
+
- rasterio
|
|
46
|
+
- h5py
|
|
47
|
+
- pip
|
|
48
|
+
- pip:
|
|
49
|
+
- pingverter
|
|
50
|
+
- pingmapper
|
|
51
|
+
- pingwizard
|
|
52
|
+
- pinginstaller
|
|
53
|
+
- doodleverse_utils
|
|
54
|
+
- psutil
|
|
55
|
+
- tensorflow
|
|
56
|
+
- tf-keras
|
|
57
|
+
- transformers
|
|
58
|
+
- pysimplegui == 5.0.*
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The special thing about `PINGInstaller` is that it will install the `conda` environment based on the `conda` prompt it is launched from. This enables end-users with multiple `conda` installations to choose the flavor of `conda` as needed.
|
|
62
|
+
|
|
63
|
+
Supported prompts include (but may not be limited to):
|
|
64
|
+
|
|
65
|
+
- [Miniforge](https://conda-forge.org/download/)
|
|
66
|
+
- [Miniconda](https://docs.anaconda.com/miniconda/install/)
|
|
67
|
+
- [Anaconda](https://www.anaconda.com/download)
|
|
68
|
+
- [ArcGIS Python Command Prompt](https://pro.arcgis.com/en/pro-app/3.3/arcpy/get-started/installing-python-for-arcgis-pro.htm)
|
|
69
|
+
|
|
70
|
+
`PINGInstaller` is also compatible with projects in the [Doodlevers](https://github.com/settings/organizations).
|
|
71
|
+
|
|
72
|
+
## Installation & Usage
|
|
73
|
+
|
|
74
|
+
### Step 1
|
|
75
|
+
|
|
76
|
+
Open (download, if not already available) the `conda` prompt you want to use (ex: On Windows 11 - Start --> All --> Anaconda (miniconda3) --> Anaconda Powershell Prompt).
|
|
77
|
+
|
|
78
|
+
### Step 2
|
|
79
|
+
|
|
80
|
+
Install `PINGInstaller` in the `base` environment with:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install pinginstaller
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Step 3
|
|
87
|
+
|
|
88
|
+
Then install the environment from a web or locally hosted yml with:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.yml
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
That's it! Your environment is now ready to use.
|
|
95
|
+
|
|
96
|
+
If you want to update the environment, simply re-run the environment installation script with:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.yml
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Ta-ta for now!
|
|
103
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# PINGInstaller
|
|
2
|
+
Light-weight application for installing [PINGMapper](https://github.com/CameronBodine/PINGMapper) and associated packages. `PINGInstaller` is designed to install a `conda` environment from a yml specified as a URL or localy hosted yml.
|
|
3
|
+
|
|
4
|
+
Example yml file structure:
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
name: ping
|
|
8
|
+
channels:
|
|
9
|
+
- conda-forge
|
|
10
|
+
- defaults
|
|
11
|
+
dependencies:
|
|
12
|
+
- python < 3.13
|
|
13
|
+
- gdal
|
|
14
|
+
- numpy
|
|
15
|
+
- git
|
|
16
|
+
- pandas
|
|
17
|
+
- geopandas
|
|
18
|
+
- pyproj
|
|
19
|
+
- scikit-image
|
|
20
|
+
- joblib
|
|
21
|
+
- matplotlib
|
|
22
|
+
- rasterio
|
|
23
|
+
- h5py
|
|
24
|
+
- pip
|
|
25
|
+
- pip:
|
|
26
|
+
- pingverter
|
|
27
|
+
- pingmapper
|
|
28
|
+
- pingwizard
|
|
29
|
+
- pinginstaller
|
|
30
|
+
- doodleverse_utils
|
|
31
|
+
- psutil
|
|
32
|
+
- tensorflow
|
|
33
|
+
- tf-keras
|
|
34
|
+
- transformers
|
|
35
|
+
- pysimplegui == 5.0.*
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The special thing about `PINGInstaller` is that it will install the `conda` environment based on the `conda` prompt it is launched from. This enables end-users with multiple `conda` installations to choose the flavor of `conda` as needed.
|
|
39
|
+
|
|
40
|
+
Supported prompts include (but may not be limited to):
|
|
41
|
+
|
|
42
|
+
- [Miniforge](https://conda-forge.org/download/)
|
|
43
|
+
- [Miniconda](https://docs.anaconda.com/miniconda/install/)
|
|
44
|
+
- [Anaconda](https://www.anaconda.com/download)
|
|
45
|
+
- [ArcGIS Python Command Prompt](https://pro.arcgis.com/en/pro-app/3.3/arcpy/get-started/installing-python-for-arcgis-pro.htm)
|
|
46
|
+
|
|
47
|
+
`PINGInstaller` is also compatible with projects in the [Doodlevers](https://github.com/settings/organizations).
|
|
48
|
+
|
|
49
|
+
## Installation & Usage
|
|
50
|
+
|
|
51
|
+
### Step 1
|
|
52
|
+
|
|
53
|
+
Open (download, if not already available) the `conda` prompt you want to use (ex: On Windows 11 - Start --> All --> Anaconda (miniconda3) --> Anaconda Powershell Prompt).
|
|
54
|
+
|
|
55
|
+
### Step 2
|
|
56
|
+
|
|
57
|
+
Install `PINGInstaller` in the `base` environment with:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pip install pinginstaller
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Step 3
|
|
64
|
+
|
|
65
|
+
Then install the environment from a web or locally hosted yml with:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.yml
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
That's it! Your environment is now ready to use.
|
|
72
|
+
|
|
73
|
+
If you want to update the environment, simply re-run the environment installation script with:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.yml
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Ta-ta for now!
|
|
80
|
+
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import os, sys
|
|
2
|
+
import subprocess, re
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
def install_housekeeping(conda_key):
|
|
6
|
+
|
|
7
|
+
subprocess.run('''"{}" update -y conda'''.format(conda_key), shell=True)
|
|
8
|
+
subprocess.run('''"{}" clean -y --all'''.format(conda_key), shell=True)
|
|
9
|
+
subprocess.run('''python -m pip install --upgrade pip''', shell=True)
|
|
10
|
+
|
|
11
|
+
def conda_env_exists(conda_key, env_name):
|
|
12
|
+
|
|
13
|
+
result = subprocess.run('''"{}" env list'''.format(conda_key), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
|
|
14
|
+
envs = result.stdout.splitlines()
|
|
15
|
+
for env in envs:
|
|
16
|
+
if re.search(rf'^{env_name}\s', env):
|
|
17
|
+
return True
|
|
18
|
+
return False
|
|
19
|
+
|
|
20
|
+
def install(conda_key, yml):
|
|
21
|
+
|
|
22
|
+
subprocess.run('''"{}" env create --file "{}"'''.format(conda_key, yml), shell=True)
|
|
23
|
+
|
|
24
|
+
subprocess.run('conda env list', shell=True)
|
|
25
|
+
|
|
26
|
+
return
|
|
27
|
+
|
|
28
|
+
def update(conda_key, yml):
|
|
29
|
+
|
|
30
|
+
subprocess.run('''"{}" env update --file "{}" --prune'''.format(conda_key, yml), shell=True)
|
|
31
|
+
|
|
32
|
+
subprocess.run('conda env list', shell=True)
|
|
33
|
+
|
|
34
|
+
return
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# def install_update(conda_base, conda_key):
|
|
38
|
+
def install_update(yml):
|
|
39
|
+
|
|
40
|
+
subprocess.run('conda env list', shell=True)
|
|
41
|
+
|
|
42
|
+
####################
|
|
43
|
+
# Make the conda key
|
|
44
|
+
## This is the 'base' of the currently used conda prompt
|
|
45
|
+
## Tested with miniconda and miniforge.
|
|
46
|
+
## Assume works for Anaconda.
|
|
47
|
+
env_dir = os.environ['CONDA_PREFIX']
|
|
48
|
+
|
|
49
|
+
conda_key = os.path.join(env_dir, 'Scripts', 'conda.exe')
|
|
50
|
+
|
|
51
|
+
# Above doesn't work for ArcGIS conda installs
|
|
52
|
+
## Make sure conda exists, if not, change to CONDA
|
|
53
|
+
if not os.path.exists(conda_key):
|
|
54
|
+
conda_key = os.environ.get('CONDA_EXE', 'conda')
|
|
55
|
+
|
|
56
|
+
print('conda_key:', conda_key)
|
|
57
|
+
|
|
58
|
+
##############
|
|
59
|
+
# Housekeeping
|
|
60
|
+
install_housekeeping(conda_key)
|
|
61
|
+
|
|
62
|
+
##############
|
|
63
|
+
# Download yml
|
|
64
|
+
|
|
65
|
+
# Download yml if necessary
|
|
66
|
+
del_yml = False
|
|
67
|
+
if yml.startswith("https:") or yml.startswith("http:"):
|
|
68
|
+
print("Downloading:", yml)
|
|
69
|
+
|
|
70
|
+
# Make sure ?raw=true at end
|
|
71
|
+
if not yml.endswith("?raw=true"):
|
|
72
|
+
yml += "?raw=true"
|
|
73
|
+
from pinginstaller.download_yml import get_yml
|
|
74
|
+
yml = get_yml(yml)
|
|
75
|
+
|
|
76
|
+
print("Downloaded yml:", yml)
|
|
77
|
+
del_yml = True
|
|
78
|
+
|
|
79
|
+
######################
|
|
80
|
+
# Get environment name
|
|
81
|
+
with open(yml, 'r') as f:
|
|
82
|
+
for line in f:
|
|
83
|
+
if line.startswith('name:'):
|
|
84
|
+
env_name = line.split('name:')[-1].strip()
|
|
85
|
+
|
|
86
|
+
######################################
|
|
87
|
+
# Install or update `ping` environment
|
|
88
|
+
if conda_env_exists(conda_key, env_name):
|
|
89
|
+
print(f"Updating '{env_name}' environment ...")
|
|
90
|
+
# subprocess.run([os.path.join(directory, "Update.bat"), conda_base, conda_key, yml], shell=True)
|
|
91
|
+
update(conda_key, yml)
|
|
92
|
+
|
|
93
|
+
else:
|
|
94
|
+
print(f"Creating '{env_name}' environment...")
|
|
95
|
+
# subprocess.run([os.path.join(directory, "Install.bat"), conda_base, conda_key, yml], shell=True)
|
|
96
|
+
install(conda_key, yml)
|
|
97
|
+
|
|
98
|
+
#########
|
|
99
|
+
# Cleanup
|
|
100
|
+
if del_yml:
|
|
101
|
+
os.remove(yml)
|
|
102
|
+
|
|
103
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
import os, sys
|
|
3
|
+
|
|
4
|
+
# Add 'pingwizard' to the path, may not need after pypi package...
|
|
5
|
+
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
6
|
+
PACKAGE_DIR = os.path.dirname(SCRIPT_DIR)
|
|
7
|
+
sys.path.append(PACKAGE_DIR)
|
|
8
|
+
|
|
9
|
+
# Get yml
|
|
10
|
+
if len(sys.argv) == 1:
|
|
11
|
+
yml = "https://github.com/CameronBodine/PINGMapper/blob/dev_v4/pingmapper/conda/PINGMapper.yml"
|
|
12
|
+
else:
|
|
13
|
+
yml = sys.argv[1]
|
|
14
|
+
|
|
15
|
+
def main(yml):
|
|
16
|
+
|
|
17
|
+
print('Env yml:', yml)
|
|
18
|
+
|
|
19
|
+
from pinginstaller.Install_Update_PINGMapper import install_update
|
|
20
|
+
install_update(yml)
|
|
21
|
+
|
|
22
|
+
return
|
|
23
|
+
|
|
24
|
+
if __name__ == '__main__':
|
|
25
|
+
main(yml)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import os, sys
|
|
2
|
+
import urllib.request
|
|
3
|
+
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
home_path = os.path.join(Path.home())
|
|
6
|
+
|
|
7
|
+
def get_yml(url):
|
|
8
|
+
|
|
9
|
+
# Get yml data from github
|
|
10
|
+
with urllib.request.urlopen(url) as f:
|
|
11
|
+
yml_data = f.read().decode('utf-8')
|
|
12
|
+
|
|
13
|
+
# Make a temporary file
|
|
14
|
+
temp_file = os.path.join(home_path, 'pinginstaller_conda_file.yml')
|
|
15
|
+
|
|
16
|
+
# Write yml data to temporary file
|
|
17
|
+
with open(temp_file, 'w') as t:
|
|
18
|
+
t.write(yml_data)
|
|
19
|
+
|
|
20
|
+
return temp_file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '1.0.0'
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: pinginstaller
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Light-weight interface for running PING ecosystem (PINGMapper, etc.)
|
|
5
|
+
Author: Cameron Bodine
|
|
6
|
+
Author-email: bodine.cs@gmail.email
|
|
7
|
+
Project-URL: Issues, https://github.com/CameronBodine/PINGInstaller/issues
|
|
8
|
+
Project-URL: GitHub, https://github.com/CameronBodine/PINGInstaller
|
|
9
|
+
Project-URL: Homepage, https://cameronbodine.github.io/PINGMapper/
|
|
10
|
+
Keywords: pingmapper,sonar,ecology,remotesensing,sidescan,sidescan-sonar,aquatic,humminbird,lowrance,gis,oceanography,limnology
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Oceanography
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Hydrology
|
|
20
|
+
Requires-Python: >3
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
|
|
24
|
+
# PINGInstaller
|
|
25
|
+
Light-weight application for installing [PINGMapper](https://github.com/CameronBodine/PINGMapper) and associated packages. `PINGInstaller` is designed to install a `conda` environment from a yml specified as a URL or localy hosted yml.
|
|
26
|
+
|
|
27
|
+
Example yml file structure:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
name: ping
|
|
31
|
+
channels:
|
|
32
|
+
- conda-forge
|
|
33
|
+
- defaults
|
|
34
|
+
dependencies:
|
|
35
|
+
- python < 3.13
|
|
36
|
+
- gdal
|
|
37
|
+
- numpy
|
|
38
|
+
- git
|
|
39
|
+
- pandas
|
|
40
|
+
- geopandas
|
|
41
|
+
- pyproj
|
|
42
|
+
- scikit-image
|
|
43
|
+
- joblib
|
|
44
|
+
- matplotlib
|
|
45
|
+
- rasterio
|
|
46
|
+
- h5py
|
|
47
|
+
- pip
|
|
48
|
+
- pip:
|
|
49
|
+
- pingverter
|
|
50
|
+
- pingmapper
|
|
51
|
+
- pingwizard
|
|
52
|
+
- pinginstaller
|
|
53
|
+
- doodleverse_utils
|
|
54
|
+
- psutil
|
|
55
|
+
- tensorflow
|
|
56
|
+
- tf-keras
|
|
57
|
+
- transformers
|
|
58
|
+
- pysimplegui == 5.0.*
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The special thing about `PINGInstaller` is that it will install the `conda` environment based on the `conda` prompt it is launched from. This enables end-users with multiple `conda` installations to choose the flavor of `conda` as needed.
|
|
62
|
+
|
|
63
|
+
Supported prompts include (but may not be limited to):
|
|
64
|
+
|
|
65
|
+
- [Miniforge](https://conda-forge.org/download/)
|
|
66
|
+
- [Miniconda](https://docs.anaconda.com/miniconda/install/)
|
|
67
|
+
- [Anaconda](https://www.anaconda.com/download)
|
|
68
|
+
- [ArcGIS Python Command Prompt](https://pro.arcgis.com/en/pro-app/3.3/arcpy/get-started/installing-python-for-arcgis-pro.htm)
|
|
69
|
+
|
|
70
|
+
`PINGInstaller` is also compatible with projects in the [Doodlevers](https://github.com/settings/organizations).
|
|
71
|
+
|
|
72
|
+
## Installation & Usage
|
|
73
|
+
|
|
74
|
+
### Step 1
|
|
75
|
+
|
|
76
|
+
Open (download, if not already available) the `conda` prompt you want to use (ex: On Windows 11 - Start --> All --> Anaconda (miniconda3) --> Anaconda Powershell Prompt).
|
|
77
|
+
|
|
78
|
+
### Step 2
|
|
79
|
+
|
|
80
|
+
Install `PINGInstaller` in the `base` environment with:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install pinginstaller
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Step 3
|
|
87
|
+
|
|
88
|
+
Then install the environment from a web or locally hosted yml with:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.yml
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
That's it! Your environment is now ready to use.
|
|
95
|
+
|
|
96
|
+
If you want to update the environment, simply re-run the environment installation script with:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.yml
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Ta-ta for now!
|
|
103
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
setup.py
|
|
4
|
+
pinginstaller/Install_Update_PINGMapper.py
|
|
5
|
+
pinginstaller/__init__.py
|
|
6
|
+
pinginstaller/__main__.py
|
|
7
|
+
pinginstaller/download_yml.py
|
|
8
|
+
pinginstaller/version.py
|
|
9
|
+
pinginstaller.egg-info/PKG-INFO
|
|
10
|
+
pinginstaller.egg-info/SOURCES.txt
|
|
11
|
+
pinginstaller.egg-info/dependency_links.txt
|
|
12
|
+
pinginstaller.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pinginstaller
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
|
|
2
|
+
from setuptools import setup, find_packages
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
DESCRIPTION = 'Light-weight interface for running PING ecosystem (PINGMapper, etc.)'
|
|
6
|
+
LONG_DESCRIPTION = Path('README.md').read_text()
|
|
7
|
+
|
|
8
|
+
exec(open('pinginstaller/version.py').read())
|
|
9
|
+
|
|
10
|
+
setup(
|
|
11
|
+
name="pinginstaller",
|
|
12
|
+
version=__version__,
|
|
13
|
+
author="Cameron Bodine",
|
|
14
|
+
author_email="bodine.cs@gmail.email",
|
|
15
|
+
description=DESCRIPTION,
|
|
16
|
+
long_description=LONG_DESCRIPTION,
|
|
17
|
+
long_description_content_type='text/markdown',
|
|
18
|
+
packages=find_packages(),
|
|
19
|
+
# data_files=[("pingmapper_config", ["pinginstaller/PINGMapper.yml"])],
|
|
20
|
+
classifiers=[
|
|
21
|
+
"Development Status :: 4 - Beta",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"License :: OSI Approved :: MIT License",
|
|
24
|
+
"Operating System :: OS Independent",
|
|
25
|
+
"Topic :: Scientific/Engineering",
|
|
26
|
+
"Topic :: Scientific/Engineering :: Visualization",
|
|
27
|
+
"Topic :: Scientific/Engineering :: Oceanography",
|
|
28
|
+
"Topic :: Scientific/Engineering :: GIS",
|
|
29
|
+
"Topic :: Scientific/Engineering :: Hydrology"
|
|
30
|
+
],
|
|
31
|
+
keywords=[
|
|
32
|
+
"pingmapper",
|
|
33
|
+
"sonar",
|
|
34
|
+
"ecology",
|
|
35
|
+
"remotesensing",
|
|
36
|
+
"sidescan",
|
|
37
|
+
"sidescan-sonar",
|
|
38
|
+
"aquatic",
|
|
39
|
+
"humminbird",
|
|
40
|
+
"lowrance",
|
|
41
|
+
"gis",
|
|
42
|
+
"oceanography",
|
|
43
|
+
"limnology",],
|
|
44
|
+
python_requires=">3",
|
|
45
|
+
install_requires=[],
|
|
46
|
+
project_urls={
|
|
47
|
+
"Issues": "https://github.com/CameronBodine/PINGInstaller/issues",
|
|
48
|
+
"GitHub":"https://github.com/CameronBodine/PINGInstaller",
|
|
49
|
+
"Homepage":"https://cameronbodine.github.io/PINGMapper/",
|
|
50
|
+
},
|
|
51
|
+
)
|