a2p2 0.7.3__tar.gz → 0.7.5__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.
- {a2p2-0.7.3/a2p2.egg-info → a2p2-0.7.5}/PKG-INFO +18 -10
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/catalogs.py +92 -8
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/version.py +27 -35
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/facility.py +9 -2
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/pionier.py +0 -3
- {a2p2-0.7.3 → a2p2-0.7.5/a2p2.egg-info}/PKG-INFO +18 -10
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/SOURCES.txt +1 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/entry_points.txt +0 -1
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/requires.txt +2 -1
- a2p2-0.7.5/pyproject.toml +44 -0
- a2p2-0.7.5/setup.py +19 -0
- a2p2-0.7.3/setup.py +0 -44
- {a2p2-0.7.3 → a2p2-0.7.5}/LICENSE +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/MANIFEST.in +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/README.rst +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/__init__.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/__main__.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/chara/__init__.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/chara/facility.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/chara/gui.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/client.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/facility.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/gui.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/instrument.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/__init__.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/generated_models.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/models.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/services.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/utils.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/webservices.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/ob.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/samp.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/utils.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/__init__.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/GRAVITY_ditTable.json +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/GRAVITY_rangeTable.json +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/MATISSE_ditTable.json +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/MATISSE_rangeTable.json +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/PIONIER_ditTable.json +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/PIONIER_rangeTable.json +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/gravity.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/gui.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/instrument.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/matisse.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/dependency_links.txt +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/top_level.txt +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/setup.cfg +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/test/test_jmmc_catalog.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/test/test_jmmc_models.py +0 -0
- {a2p2-0.7.3 → a2p2-0.7.5}/test/test_test.py +0 -0
@@ -1,19 +1,29 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: a2p2
|
3
|
-
Version: 0.7.
|
4
|
-
|
5
|
-
Home-page: http://www.jmmc.fr/a2p2
|
6
|
-
Author: JMMC Tech Group
|
7
|
-
Author-email: jmmc-tech-group@jmmc.fr
|
3
|
+
Version: 0.7.5
|
4
|
+
Author-email: JMMC Tech Group <jmmc-tech-group@jmmc.fr>
|
8
5
|
License: OSI Approved :: GNU General Public License v3 (GPLv3)
|
9
|
-
|
10
|
-
|
6
|
+
Project-URL: Homepage, https://www.jmmc.fr/a2p2
|
7
|
+
Project-URL: Bug Reports, https://github.com/JMMC-OpenDev/a2p2/issues
|
8
|
+
Project-URL: Source, https://github.com/JMMC-OpenDev/a2p2
|
9
|
+
Keywords: observation,optical-interferometry,p2,preparation,samp,tool
|
11
10
|
Classifier: Development Status :: 4 - Beta
|
12
11
|
Classifier: Intended Audience :: Developers
|
13
12
|
Classifier: Programming Language :: Python :: 3
|
14
13
|
Classifier: Programming Language :: Python :: 3.6
|
15
14
|
Requires-Python: >=3
|
15
|
+
Description-Content-Type: text/x-rst
|
16
16
|
License-File: LICENSE
|
17
|
+
Requires-Dist: appdirs
|
18
|
+
Requires-Dist: astropy>=5.2.2
|
19
|
+
Requires-Dist: pyvo>=1.6.1
|
20
|
+
Requires-Dist: p2api
|
21
|
+
Dynamic: license-file
|
22
|
+
|
23
|
+
a2p2 |A2P2Badge|
|
24
|
+
================
|
25
|
+
|
26
|
+
**Move your Aspro2 observation details to an observatory proposal database.**
|
17
27
|
|
18
28
|
Description
|
19
29
|
-----------
|
@@ -113,5 +123,3 @@ Interaction diagram
|
|
113
123
|
.. _a2p2: http://www.jmmc.fr/a2p2
|
114
124
|
.. _tutorial: https://github.com/JMMC-OpenDev/a2p2/wiki/ASPRO2-A2P2-Tutorial
|
115
125
|
.. _issue: https://github.com/JMMC-OpenDev/a2p2/issues
|
116
|
-
|
117
|
-
|
@@ -4,6 +4,9 @@ __all__ = []
|
|
4
4
|
|
5
5
|
import logging
|
6
6
|
|
7
|
+
import pyvo
|
8
|
+
import astropy.table.table
|
9
|
+
|
7
10
|
from ..client import A2P2ClientPreferences
|
8
11
|
|
9
12
|
from .utils import JmmcAPI
|
@@ -17,20 +20,36 @@ class Catalog():
|
|
17
20
|
Credential can be explicitly given for method that require an authentication, else:
|
18
21
|
- a2p2 preferences login will be used if present (see a2p2 -c)
|
19
22
|
- or uses .netrc file
|
23
|
+
A where clause can be added to limit on rows of interest (adql syntax)
|
24
|
+
A joins list of dictionnary can be provided to combine this catalog to other ones ( format is: [{"name":"cattojoin","id":"commonkey"},...] )
|
20
25
|
"""
|
21
26
|
|
22
|
-
def __init__(self, catalogName, username=None, password=None, prod=False, apiUrl=None):
|
27
|
+
def __init__(self, catalogName, username=None, password=None, prod=False, apiUrl=None, tapUrl=None, where=None, joins=None):
|
23
28
|
self.catalogName = catalogName
|
29
|
+
self.where = where
|
30
|
+
self.joins = joins
|
24
31
|
self.prod = prod
|
32
|
+
self.colDelimiterName = "coldelimiter___"
|
25
33
|
|
26
34
|
# Manage prod & preprod or user provided access points
|
27
35
|
if apiUrl:
|
28
36
|
self.apiUrl = apiUrl # trust given url as catalogAPI if value is provided
|
29
|
-
|
30
|
-
self.
|
31
|
-
|
32
|
-
|
33
|
-
|
37
|
+
if tapUrl:
|
38
|
+
self.tapUrl = tapUrl # trust given url as TAP server if value is provided
|
39
|
+
|
40
|
+
if not(apiUrl):
|
41
|
+
if self.prod:
|
42
|
+
self.apiUrl = "https://oidb.jmmc.fr/restxq/catalogs"
|
43
|
+
else:
|
44
|
+
self.apiUrl = "https://oidb-beta.jmmc.fr/restxq/catalogs"
|
45
|
+
|
46
|
+
if not(tapUrl):
|
47
|
+
if self.prod:
|
48
|
+
self.tapUrl = "https://tap.jmmc.fr/vollt/tap"
|
49
|
+
else:
|
50
|
+
self.tapUrl = "https://tap-preprod.jmmc.fr/vollt/tap"
|
51
|
+
|
52
|
+
self.tap = pyvo.dal.TAPService(self.tapUrl)
|
34
53
|
self.api = JmmcAPI(self.apiUrl, username, password)
|
35
54
|
|
36
55
|
logger.info(f"Create catalog wrapper to access '{catalogName}' ({PRODLABEL[self.prod]} API at {self.api.rootURL})")
|
@@ -40,7 +59,7 @@ class Catalog():
|
|
40
59
|
return self.api._get("")
|
41
60
|
|
42
61
|
def metadata(self):
|
43
|
-
""" Get catalog metadata
|
62
|
+
""" Get catalog metadata"""
|
44
63
|
return self.api._get(f"/meta/{self.catalogName}")
|
45
64
|
|
46
65
|
def pis(self):
|
@@ -66,12 +85,75 @@ class Catalog():
|
|
66
85
|
return pi["name"]
|
67
86
|
|
68
87
|
def getRow(self, id):
|
69
|
-
""" Get a single catalog record for the given id.
|
88
|
+
""" Get a single catalog record for the given id on the main catalog.
|
70
89
|
|
71
90
|
usage: cat.getRow(42)
|
72
91
|
"""
|
73
92
|
return self.api._get(f"/{self.catalogName}/{id}")
|
74
93
|
|
94
|
+
def getTable(self, maxrec=10000):
|
95
|
+
""" Get an astropy table from the main catalog joined the other if provided in constructor.
|
96
|
+
|
97
|
+
usage: cat.getRows()
|
98
|
+
"""
|
99
|
+
# using SELECT TOP N below to workarround astroquery.utils.tap BUG
|
100
|
+
|
101
|
+
clauses = []
|
102
|
+
if self.joins :
|
103
|
+
joinedCatalogNames = []
|
104
|
+
for join in self.joins:
|
105
|
+
joinedCatalogNames.append(join["name"] + ".*")
|
106
|
+
|
107
|
+
# colDelimiterName is added so we can keep the mainCatalog colnames for later updates (using rowsToDict)
|
108
|
+
clauses.append(f"SELECT TOP {maxrec} {self.catalogName}.*, '' as {self.colDelimiterName}, {', '.join(joinedCatalogNames)} FROM {self.catalogName}" )
|
109
|
+
|
110
|
+
for join in self.joins:
|
111
|
+
if "catalogKey" in join.keys():
|
112
|
+
catalogKey=join["catalogKey"]
|
113
|
+
else:
|
114
|
+
# we could use the (cached) metadata key, but this would add a additional remote call.A2P2ClientPreferences
|
115
|
+
# let's try with this convention using the same key name
|
116
|
+
catalogKey=join["id"]
|
117
|
+
name=join["name"]
|
118
|
+
id=join["id"]
|
119
|
+
# LEFT JOIN may be an option provided by join key ?
|
120
|
+
clauses.append (f" LEFT JOIN {name} ON {self.catalogName}.{catalogKey} = {name}.{id}")
|
121
|
+
|
122
|
+
if self.where:
|
123
|
+
clauses.append(f" WHERE {self.catalogName}.{self.where}")
|
124
|
+
else:
|
125
|
+
clauses.append(f"SELECT TOP {maxrec} * FROM {self.catalogName}")
|
126
|
+
if self.where:
|
127
|
+
clauses.append(f" WHERE {self.where}")
|
128
|
+
|
129
|
+
query = " ".join(clauses)
|
130
|
+
logger.info(f"Queriing TAP : {query}")
|
131
|
+
return self.tap.search(query,maxrec=maxrec).to_table()
|
132
|
+
|
133
|
+
|
134
|
+
def tableToDict(self, table):
|
135
|
+
""" Convert table (astropy.table or row) to a list of dict so we can modify content and update remote catalog using updateRows().
|
136
|
+
|
137
|
+
usage: cat.tableToDict(table)
|
138
|
+
"""
|
139
|
+
colnames = table.colnames
|
140
|
+
if "coldelimiter___" in colnames:
|
141
|
+
colnames = colnames[0:colnames.index("coldelimiter___")]
|
142
|
+
dicts=[]
|
143
|
+
# handle single row case
|
144
|
+
table = table if isinstance(table, astropy.table.table.Table ) else [table]
|
145
|
+
for row in table:
|
146
|
+
dict = {}
|
147
|
+
for colname in colnames:
|
148
|
+
v=row[colname]
|
149
|
+
if isinstance(v,str):
|
150
|
+
dict[colname] = v
|
151
|
+
else:
|
152
|
+
# avoid np.numeric type to make it json serializable
|
153
|
+
dict[colname] = v.item()
|
154
|
+
dicts.append(dict)
|
155
|
+
return dicts
|
156
|
+
|
75
157
|
def updateRow(self, id, values):
|
76
158
|
""" Update record identified by given id and associated values.
|
77
159
|
|
@@ -87,6 +169,7 @@ class Catalog():
|
|
87
169
|
"""
|
88
170
|
|
89
171
|
# We may check befere sending payload that we always provide an id for every record
|
172
|
+
# What is the behaviour if we provide various data assosiated to the same id ?
|
90
173
|
return self.api._put(f"/{self.catalogName}", values)
|
91
174
|
|
92
175
|
def addRows(self, values):
|
@@ -97,6 +180,7 @@ class Catalog():
|
|
97
180
|
"""
|
98
181
|
return self.api._post(f"/{self.catalogName}", json=values)
|
99
182
|
|
183
|
+
|
100
184
|
def getDelegations(self, pi=None):
|
101
185
|
""" Get -all- delegations.
|
102
186
|
A specific pi parameter may be given but requires admin priviledges. Else use current piname will be used by remote service.
|
@@ -1,45 +1,43 @@
|
|
1
|
-
__version__ = "0.7.
|
1
|
+
__version__ = "0.7.5"
|
2
2
|
|
3
3
|
__release_notes__ = {
|
4
4
|
# "0.1.6": {
|
5
|
-
# "STATUS":[
|
6
|
-
# "This version get lot of changes and may contain bugs or missing features, please provide any feedback to improve and prepare a better future release !"
|
7
|
-
# ],
|
8
5
|
# "A2P2": [
|
9
|
-
#
|
10
6
|
# ],
|
11
7
|
# "VLTI": [
|
12
|
-
#
|
13
8
|
# ],
|
14
9
|
# "CHARA": [
|
15
|
-
#
|
16
|
-
# ],
|
17
|
-
# "TODO-SCIENCE": [
|
18
|
-
#
|
19
|
-
# ],
|
20
|
-
# "TODO-DEV": [
|
21
|
-
#
|
22
10
|
# ],
|
23
11
|
# },
|
24
|
-
|
12
|
+
#
|
13
|
+
# "TODO-SCIENCE": [
|
14
|
+
# "Merge AO or GS in a same code section for every instruments",
|
15
|
+
# "Check DIT table from the last template user manuals (especially MATISSE) and remove PIONIER's one",
|
16
|
+
# "flag ~important~ keywords which MUST be set in a2p2 code and not leaved to there default values?",
|
17
|
+
# ],
|
18
|
+
# "TODO-DEV": [
|
19
|
+
# "Support multiple period version (two major at least)",
|
20
|
+
# "Support numlist keyword : eg. SEQ.HWPOFF (done in conf but must be range check compatible)",
|
21
|
+
# "Unify ob name creation in vlti instrument createOB()",
|
22
|
+
# "Complete test suite with more real p2 submissions",
|
23
|
+
# "Try to read OB in P2 and send them back to Aspro2 as a new obs",
|
24
|
+
# ],
|
25
|
+
|
26
|
+
"0.7.5": {
|
27
|
+
"A2P2": [
|
28
|
+
"Add support for join and filter in a2p2.jmmc.Catalog wrapper",
|
29
|
+
],
|
30
|
+
},"0.7.4": {
|
31
|
+
"A2P2": [
|
32
|
+
"Use pyproject.toml for python installation",
|
33
|
+
],"VLTI": [
|
34
|
+
"Do not switch PIONIER mode to FREE when the magnitude of the IAS star is too high : an error may be provided by p2"
|
35
|
+
],
|
36
|
+
},"0.7.3": {
|
25
37
|
"CHARA": [
|
26
38
|
"Better reuse of last working queueserver"
|
27
39
|
],
|
28
|
-
"TODO-SCIENCE": [
|
29
|
-
"Merge AO or GS in a same code section for every instruments",
|
30
|
-
"Check DIT table from the last template user manuals (especially MATISSE) and remove PIONIER's one",
|
31
|
-
"flag ~important~ keywords which MUST be set in a2p2 code and not leaved to there default values?",
|
32
|
-
],
|
33
|
-
"TODO-DEV": [
|
34
|
-
"Support multiple period version (two major at least)",
|
35
|
-
"Support numlist keyword : eg. SEQ.HWPOFF (done in conf but must be range check compatible)",
|
36
|
-
"Unify ob name creation in vlti instrument createOB()",
|
37
|
-
"Complete test suite with more real p2 submissions",
|
38
|
-
"Try to read OB in P2 and send them back to Aspro2 as a new obs",
|
39
|
-
],
|
40
40
|
},"0.7.2": {
|
41
|
-
"STATUS": [
|
42
|
-
],
|
43
41
|
"A2P2": [
|
44
42
|
"Auto update chara queueserver preference",
|
45
43
|
"a2p2 -r generates release-notes.md (rendered on a2p2 repository)"
|
@@ -51,8 +49,6 @@ __release_notes__ = {
|
|
51
49
|
"Support and try every queueserver's Urls comma separated from the queuserver user preference"
|
52
50
|
],
|
53
51
|
},"0.7.1": {
|
54
|
-
"STATUS": [
|
55
|
-
],
|
56
52
|
"A2P2": [
|
57
53
|
"Fix ttk import on MacOS",
|
58
54
|
],
|
@@ -65,8 +61,6 @@ __release_notes__ = {
|
|
65
61
|
"Display log of received OB also for calibrators"
|
66
62
|
]
|
67
63
|
},"0.6.9": {
|
68
|
-
"STATUS": [
|
69
|
-
],
|
70
64
|
"A2P2": [
|
71
65
|
"ctrl-c support improved to qui a2p2 from terminal",
|
72
66
|
],
|
@@ -94,8 +88,6 @@ __release_notes__ = {
|
|
94
88
|
"Experimental: forward OBs through json payload to the location defined in preference",
|
95
89
|
],
|
96
90
|
},"0.6.4": {
|
97
|
-
"STATUS": [
|
98
|
-
],
|
99
91
|
"A2P2": [
|
100
92
|
"Fix import that may break run on windows..."
|
101
93
|
],
|
@@ -238,7 +230,7 @@ __release_notes__ = {
|
|
238
230
|
],
|
239
231
|
},
|
240
232
|
"0.2.14": {
|
241
|
-
"
|
233
|
+
"A2P2": [
|
242
234
|
"BugFix: ask for container Name only if one is selected"
|
243
235
|
],
|
244
236
|
},
|
@@ -191,10 +191,17 @@ class VltiFacility(Facility):
|
|
191
191
|
instrument = self.getInstrument(o.instrumentConfiguration.name)
|
192
192
|
instrument.checkOB(o)
|
193
193
|
# check for warnings and abort if requested by user
|
194
|
+
# this implementation should be more detailled so we can have various VERSION associated to various warning
|
194
195
|
if len(instrument.warnings)>0:
|
195
196
|
linesep="\n - "
|
196
|
-
|
197
|
-
|
197
|
+
header=""
|
198
|
+
try:
|
199
|
+
# some ditTable may have a VERSION entry some not...
|
200
|
+
version=instrument.getDitTable()["VERSION"]
|
201
|
+
header= f"According to the template manual {version} :\n \n - \n"
|
202
|
+
except:
|
203
|
+
pass
|
204
|
+
answer = self.ui.AskYesNoMessage(f"{header} {linesep.join(instrument.warnings)}\n\nClick \"Yes\" to proceed \"No\" to abort the submission")
|
198
205
|
instrument.warnings.clear()
|
199
206
|
if answer == False:
|
200
207
|
self.ui.addToLog("Submission has been marked to be aborted - do not proceed")
|
@@ -124,9 +124,6 @@ class Pionier(VltiInstrument):
|
|
124
124
|
else:
|
125
125
|
obConstraints.skyTransparency = 'Clear'
|
126
126
|
|
127
|
-
if acqTSF.ISS_IAS_HMAG > 7.5:
|
128
|
-
acqTSF.INS_DISP_NAME = "FREE"
|
129
|
-
|
130
127
|
# FIXME: error (OB): "Phase 2 constraints must closely follow what was requested in the Phase 1 proposal.
|
131
128
|
# The seeing value allowed for this OB is >= java0x0 arcsec."
|
132
129
|
# FIXME REPLACE SEEING THAT IS NO MORE SUPPORTED
|
@@ -1,19 +1,29 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: a2p2
|
3
|
-
Version: 0.7.
|
4
|
-
|
5
|
-
Home-page: http://www.jmmc.fr/a2p2
|
6
|
-
Author: JMMC Tech Group
|
7
|
-
Author-email: jmmc-tech-group@jmmc.fr
|
3
|
+
Version: 0.7.5
|
4
|
+
Author-email: JMMC Tech Group <jmmc-tech-group@jmmc.fr>
|
8
5
|
License: OSI Approved :: GNU General Public License v3 (GPLv3)
|
9
|
-
|
10
|
-
|
6
|
+
Project-URL: Homepage, https://www.jmmc.fr/a2p2
|
7
|
+
Project-URL: Bug Reports, https://github.com/JMMC-OpenDev/a2p2/issues
|
8
|
+
Project-URL: Source, https://github.com/JMMC-OpenDev/a2p2
|
9
|
+
Keywords: observation,optical-interferometry,p2,preparation,samp,tool
|
11
10
|
Classifier: Development Status :: 4 - Beta
|
12
11
|
Classifier: Intended Audience :: Developers
|
13
12
|
Classifier: Programming Language :: Python :: 3
|
14
13
|
Classifier: Programming Language :: Python :: 3.6
|
15
14
|
Requires-Python: >=3
|
15
|
+
Description-Content-Type: text/x-rst
|
16
16
|
License-File: LICENSE
|
17
|
+
Requires-Dist: appdirs
|
18
|
+
Requires-Dist: astropy>=5.2.2
|
19
|
+
Requires-Dist: pyvo>=1.6.1
|
20
|
+
Requires-Dist: p2api
|
21
|
+
Dynamic: license-file
|
22
|
+
|
23
|
+
a2p2 |A2P2Badge|
|
24
|
+
================
|
25
|
+
|
26
|
+
**Move your Aspro2 observation details to an observatory proposal database.**
|
17
27
|
|
18
28
|
Description
|
19
29
|
-----------
|
@@ -113,5 +123,3 @@ Interaction diagram
|
|
113
123
|
.. _a2p2: http://www.jmmc.fr/a2p2
|
114
124
|
.. _tutorial: https://github.com/JMMC-OpenDev/a2p2/wiki/ASPRO2-A2P2-Tutorial
|
115
125
|
.. _issue: https://github.com/JMMC-OpenDev/a2p2/issues
|
116
|
-
|
117
|
-
|
@@ -0,0 +1,44 @@
|
|
1
|
+
[build-system]
|
2
|
+
requires = ["setuptools"]
|
3
|
+
build-backend = "setuptools.build_meta"
|
4
|
+
|
5
|
+
[project]
|
6
|
+
name = "a2p2"
|
7
|
+
dynamic = ["version", "description"]
|
8
|
+
#version = "1.2.3"
|
9
|
+
#description = ["description"]
|
10
|
+
readme = "README.rst"
|
11
|
+
license = { "text" = "OSI Approved :: GNU General Public License v3 (GPLv3)" }
|
12
|
+
requires-python = ">=3"
|
13
|
+
authors = [
|
14
|
+
{ name = "JMMC Tech Group", email = "jmmc-tech-group@jmmc.fr" },
|
15
|
+
]
|
16
|
+
keywords = [
|
17
|
+
"observation",
|
18
|
+
"optical-interferometry",
|
19
|
+
"p2",
|
20
|
+
"preparation",
|
21
|
+
"samp",
|
22
|
+
"tool",
|
23
|
+
]
|
24
|
+
classifiers = [
|
25
|
+
"Development Status :: 4 - Beta",
|
26
|
+
"Intended Audience :: Developers",
|
27
|
+
"Programming Language :: Python :: 3",
|
28
|
+
"Programming Language :: Python :: 3.6",
|
29
|
+
]
|
30
|
+
dependencies = [
|
31
|
+
"appdirs",
|
32
|
+
"astropy>=5.2.2",
|
33
|
+
"pyvo>=1.6.1",
|
34
|
+
"p2api",
|
35
|
+
]
|
36
|
+
|
37
|
+
[project.scripts]
|
38
|
+
a2p2 = "a2p2.__main__:main"
|
39
|
+
|
40
|
+
[project.urls]
|
41
|
+
Homepage = "https://www.jmmc.fr/a2p2"
|
42
|
+
"Bug Reports" = "https://github.com/JMMC-OpenDev/a2p2/issues"
|
43
|
+
Source = "https://github.com/JMMC-OpenDev/a2p2"
|
44
|
+
|
a2p2-0.7.5/setup.py
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
from setuptools import setup, find_packages
|
2
|
+
|
3
|
+
with open('README.rst') as README:
|
4
|
+
long_description = README.read()
|
5
|
+
description = long_description[
|
6
|
+
:long_description.index('Description')].split("*")[1].strip()
|
7
|
+
|
8
|
+
versions = {}
|
9
|
+
with open("a2p2/version.py") as fp:
|
10
|
+
exec(fp.read(), versions)
|
11
|
+
|
12
|
+
setup(
|
13
|
+
version=versions['__version__'],
|
14
|
+
description=description
|
15
|
+
# not yet moved to pyproject.toml
|
16
|
+
# packages=find_packages(),
|
17
|
+
# include_package_data=True,
|
18
|
+
# keywords='observation preparation tool optical-interferometry p2 samp'
|
19
|
+
)
|
a2p2-0.7.3/setup.py
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
from setuptools import setup, find_packages
|
2
|
-
|
3
|
-
with open('README.rst') as README:
|
4
|
-
long_description = README.read()
|
5
|
-
description = long_description[
|
6
|
-
:long_description.index('Description')].split("*")[1].strip()
|
7
|
-
long_description = long_description[long_description.index('Description'):]
|
8
|
-
|
9
|
-
version = {}
|
10
|
-
with open("a2p2/version.py") as fp:
|
11
|
-
exec(fp.read(), version)
|
12
|
-
|
13
|
-
setup(
|
14
|
-
name='a2p2',
|
15
|
-
version=version['__version__'],
|
16
|
-
python_requires='>=3',
|
17
|
-
description=description,
|
18
|
-
long_description=long_description,
|
19
|
-
# install_requires=['astropy', 'p2api','pygtk'],
|
20
|
-
# PyGtk is not working on some linux
|
21
|
-
# anaconda also fails
|
22
|
-
# prefere the use of your default python packages on your linux
|
23
|
-
# what is the solution for mac ?
|
24
|
-
# we continue moving tk as first gui backend
|
25
|
-
# install_requires=['astropy', 'p2api', 'python-tk'] + (['pygtk'] if
|
26
|
-
# platform.startswith("win") else []),
|
27
|
-
install_requires=['astropy>=5.2.2', 'p2api', 'appdirs'],
|
28
|
-
url='http://www.jmmc.fr/a2p2',
|
29
|
-
author='JMMC Tech Group',
|
30
|
-
author_email='jmmc-tech-group@jmmc.fr',
|
31
|
-
classifiers=[
|
32
|
-
'Development Status :: 4 - Beta',
|
33
|
-
'Intended Audience :: Developers',
|
34
|
-
# 'Programming Language :: Python :: 2',
|
35
|
-
# 'Programming Language :: Python :: 2.7',
|
36
|
-
'Programming Language :: Python :: 3',
|
37
|
-
'Programming Language :: Python :: 3.6',
|
38
|
-
],
|
39
|
-
license='OSI Approved :: GNU General Public License v3 (GPLv3)',
|
40
|
-
packages=find_packages(),
|
41
|
-
include_package_data=True,
|
42
|
-
entry_points={'console_scripts': ['a2p2=a2p2.__main__:main']},
|
43
|
-
keywords='observation preparation tool optical-interferometry p2 samp'
|
44
|
-
)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|