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.
Files changed (50) hide show
  1. {a2p2-0.7.3/a2p2.egg-info → a2p2-0.7.5}/PKG-INFO +18 -10
  2. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/catalogs.py +92 -8
  3. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/version.py +27 -35
  4. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/facility.py +9 -2
  5. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/pionier.py +0 -3
  6. {a2p2-0.7.3 → a2p2-0.7.5/a2p2.egg-info}/PKG-INFO +18 -10
  7. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/SOURCES.txt +1 -0
  8. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/entry_points.txt +0 -1
  9. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/requires.txt +2 -1
  10. a2p2-0.7.5/pyproject.toml +44 -0
  11. a2p2-0.7.5/setup.py +19 -0
  12. a2p2-0.7.3/setup.py +0 -44
  13. {a2p2-0.7.3 → a2p2-0.7.5}/LICENSE +0 -0
  14. {a2p2-0.7.3 → a2p2-0.7.5}/MANIFEST.in +0 -0
  15. {a2p2-0.7.3 → a2p2-0.7.5}/README.rst +0 -0
  16. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/__init__.py +0 -0
  17. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/__main__.py +0 -0
  18. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/chara/__init__.py +0 -0
  19. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/chara/facility.py +0 -0
  20. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/chara/gui.py +0 -0
  21. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/client.py +0 -0
  22. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/facility.py +0 -0
  23. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/gui.py +0 -0
  24. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/instrument.py +0 -0
  25. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/__init__.py +0 -0
  26. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/generated_models.py +0 -0
  27. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/models.py +0 -0
  28. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/services.py +0 -0
  29. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/utils.py +0 -0
  30. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/jmmc/webservices.py +0 -0
  31. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/ob.py +0 -0
  32. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/samp.py +0 -0
  33. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/utils.py +0 -0
  34. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/__init__.py +0 -0
  35. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/GRAVITY_ditTable.json +0 -0
  36. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/GRAVITY_rangeTable.json +0 -0
  37. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/MATISSE_ditTable.json +0 -0
  38. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/MATISSE_rangeTable.json +0 -0
  39. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/PIONIER_ditTable.json +0 -0
  40. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/conf/PIONIER_rangeTable.json +0 -0
  41. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/gravity.py +0 -0
  42. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/gui.py +0 -0
  43. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/instrument.py +0 -0
  44. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2/vlti/matisse.py +0 -0
  45. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/dependency_links.txt +0 -0
  46. {a2p2-0.7.3 → a2p2-0.7.5}/a2p2.egg-info/top_level.txt +0 -0
  47. {a2p2-0.7.3 → a2p2-0.7.5}/setup.cfg +0 -0
  48. {a2p2-0.7.3 → a2p2-0.7.5}/test/test_jmmc_catalog.py +0 -0
  49. {a2p2-0.7.3 → a2p2-0.7.5}/test/test_jmmc_models.py +0 -0
  50. {a2p2-0.7.3 → a2p2-0.7.5}/test/test_test.py +0 -0
@@ -1,19 +1,29 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: a2p2
3
- Version: 0.7.3
4
- Summary: UNKNOWN
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
- Keywords: observation preparation tool optical-interferometry p2 samp
10
- Platform: UNKNOWN
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
- elif self.prod:
30
- self.apiUrl = "https://oidb.jmmc.fr/restxq/catalogs"
31
- else:
32
- self.apiUrl = "https://oidb-beta.jmmc.fr/restxq/catalogs"
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.3"
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
- "0.7.3": {
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
- "STATUS": [
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
- version=instrument.getDitTable()["VERSION"]
197
- answer = self.ui.AskYesNoMessage(f"According to the template manual {version} :\n \n - {linesep.join(instrument.warnings)}\n\nClick \"Yes\" to proceed \"No\" to abort the submission")
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
1
+ Metadata-Version: 2.4
2
2
  Name: a2p2
3
- Version: 0.7.3
4
- Summary: UNKNOWN
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
- Keywords: observation preparation tool optical-interferometry p2 samp
10
- Platform: UNKNOWN
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
-
@@ -1,6 +1,7 @@
1
1
  LICENSE
2
2
  MANIFEST.in
3
3
  README.rst
4
+ pyproject.toml
4
5
  setup.cfg
5
6
  setup.py
6
7
  a2p2/__init__.py
@@ -1,3 +1,2 @@
1
1
  [console_scripts]
2
2
  a2p2 = a2p2.__main__:main
3
-
@@ -1,3 +1,4 @@
1
+ appdirs
1
2
  astropy>=5.2.2
3
+ pyvo>=1.6.1
2
4
  p2api
3
- appdirs
@@ -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