Skip to content

Commit fb63ec8

Browse files
committed
Merge pull request #1116 from iguananaut/issue-1112-temp
Temporary fix for #1112
2 parents e4e6020 + ef839a1 commit fb63ec8

11 files changed

Lines changed: 253 additions & 6 deletions

File tree

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ develop-eggs
3636
distribute-*.tar.gz
3737

3838
# Other
39+
.cache
3940
.tox
4041
.*.swp
4142
*~
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# angle_lextab.py. This file automatically created by PLY (version 3.4). Don't edit!
2+
_tabversion = '3.4'
3+
_lextokens = {u'DEGREE': 1, u'HOUR': 1, u'SIMPLE_UNIT': 1, u'SIGN': 1, u'SECOND': 1, u'COLON': 1, u'UINT': 1, u'MINUTE': 1, u'UFLOAT': 1}
4+
_lexreflags = 0
5+
_lexliterals = ''
6+
_lexstateinfo = {'INITIAL': 'inclusive'}
7+
_lexstatere = {'INITIAL': [(u'(?P<t_UFLOAT>((\\d+\\.\\d*)|(\\.\\d+))([eE][+-]?\\d+)?)|(?P<t_UINT>\\d+)|(?P<t_SIGN>[+-])|(?P<t_SIMPLE_UNIT>(arcminute)|(rad)|(arcsec)|(uas)|(arcsecond)|(mas)|(arcmin)|(radian))|(?P<t_MINUTE>m(in(ute(s)?)?)?|\u2032|\\\')|(?P<t_SECOND>s(ec(ond(s)?)?)?|\u2033|\\")|(?P<t_DEGREE>d(eg(ree(s)?)?)?|\xb0)|(?P<t_HOUR>hour(s)?|h(r)?|\u02b0)|(?P<t_COLON>:)', [None, (u't_UFLOAT', 'UFLOAT'), None, None, None, None, (u't_UINT', 'UINT'), (u't_SIGN', 'SIGN'), (None, 'SIMPLE_UNIT'), None, None, None, None, None, None, None, None, (None, 'MINUTE'), None, None, None, (None, 'SECOND'), None, None, None, (None, 'DEGREE'), None, None, None, (None, 'HOUR'), None, None, (None, 'COLON')])]}
8+
_lexstateignore = {'INITIAL': u' '}
9+
_lexstateerrorf = {'INITIAL': 't_error'}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
# astropy/coordinates/angle_parsetab.py
3+
# This file is automatically generated. Do not edit.
4+
_tabversion = '3.2'
5+
6+
_lr_method = 'LALR'
7+
8+
_lr_signature = '\xf9\xf2\xc0%N\xfc\x14x\x1d\xd1\xa0\x02\x1d\xabJf'
9+
10+
_lr_action_items = {u'DEGREE':([1,6,8,10,11,17,21,22,23,24,30,],[-13,13,-12,15,-14,-10,-11,-7,-6,-8,-9,]),u'HOUR':([1,6,8,10,11,17,21,22,23,24,30,],[-13,14,-12,16,-14,-10,-11,-7,-6,-8,-9,]),u'SIGN':([0,],[4,]),u'SECOND':([22,23,28,29,],[-7,-6,31,32,]),u'COLON':([10,24,],[18,27,]),u'SIMPLE_UNIT':([1,6,8,10,11,17,21,22,23,24,30,],[-13,12,-12,-15,-14,-10,-11,-7,-6,-8,-9,]),u'UINT':([0,4,5,10,15,16,17,18,25,26,27,],[-5,-4,10,17,19,20,22,24,22,22,22,]),'$end':([1,2,3,6,7,8,9,10,11,12,13,14,17,19,20,21,22,23,24,25,26,28,29,30,31,32,],[-13,0,-3,-26,-2,-12,-1,-15,-14,-27,-25,-20,-10,-21,-16,-11,-7,-6,-8,-22,-17,-23,-18,-9,-24,-19,]),u'MINUTE':([19,20,],[25,26,]),u'UFLOAT':([0,4,5,17,25,26,27,],[-5,-4,11,23,23,23,23,]),}
11+
12+
_lr_action = { }
13+
for _k, _v in _lr_action_items.items():
14+
for _x,_y in zip(_v[0],_v[1]):
15+
if not _x in _lr_action: _lr_action[_x] = { }
16+
_lr_action[_x][_k] = _y
17+
del _lr_action_items
18+
19+
_lr_goto_items = {u'angle':([0,],[2,]),u'simple':([0,],[3,]),u'sign':([0,],[5,]),u'generic':([0,],[6,]),u'dms':([0,],[7,]),u'colon':([0,],[8,]),u'spaced':([0,],[1,]),u'hms':([0,],[9,]),u'ufloat':([17,25,26,27,],[21,28,29,30,]),}
20+
21+
_lr_goto = { }
22+
for _k, _v in _lr_goto_items.items():
23+
for _x,_y in zip(_v[0],_v[1]):
24+
if not _x in _lr_goto: _lr_goto[_x] = { }
25+
_lr_goto[_x][_k] = _y
26+
del _lr_goto_items
27+
_lr_productions = [
28+
("S' -> angle","S'",1,None,None,None),
29+
(u'angle -> hms',u'angle',1,'p_angle','astropy/coordinates/angle_utilities.py',107),
30+
(u'angle -> dms',u'angle',1,'p_angle','astropy/coordinates/angle_utilities.py',108),
31+
(u'angle -> simple',u'angle',1,'p_angle','astropy/coordinates/angle_utilities.py',109),
32+
(u'sign -> SIGN',u'sign',1,'p_sign','astropy/coordinates/angle_utilities.py',115),
33+
(u'sign -> <empty>',u'sign',0,'p_sign','astropy/coordinates/angle_utilities.py',116),
34+
(u'ufloat -> UFLOAT',u'ufloat',1,'p_ufloat','astropy/coordinates/angle_utilities.py',125),
35+
(u'ufloat -> UINT',u'ufloat',1,'p_ufloat','astropy/coordinates/angle_utilities.py',126),
36+
(u'colon -> sign UINT COLON UINT',u'colon',4,'p_colon','astropy/coordinates/angle_utilities.py',132),
37+
(u'colon -> sign UINT COLON UINT COLON ufloat',u'colon',6,'p_colon','astropy/coordinates/angle_utilities.py',133),
38+
(u'spaced -> sign UINT UINT',u'spaced',3,'p_spaced','astropy/coordinates/angle_utilities.py',142),
39+
(u'spaced -> sign UINT UINT ufloat',u'spaced',4,'p_spaced','astropy/coordinates/angle_utilities.py',143),
40+
(u'generic -> colon',u'generic',1,'p_generic','astropy/coordinates/angle_utilities.py',152),
41+
(u'generic -> spaced',u'generic',1,'p_generic','astropy/coordinates/angle_utilities.py',153),
42+
(u'generic -> sign UFLOAT',u'generic',2,'p_generic','astropy/coordinates/angle_utilities.py',154),
43+
(u'generic -> sign UINT',u'generic',2,'p_generic','astropy/coordinates/angle_utilities.py',155),
44+
(u'hms -> sign UINT HOUR UINT',u'hms',4,'p_hms','astropy/coordinates/angle_utilities.py',164),
45+
(u'hms -> sign UINT HOUR UINT MINUTE',u'hms',5,'p_hms','astropy/coordinates/angle_utilities.py',165),
46+
(u'hms -> sign UINT HOUR UINT MINUTE ufloat',u'hms',6,'p_hms','astropy/coordinates/angle_utilities.py',166),
47+
(u'hms -> sign UINT HOUR UINT MINUTE ufloat SECOND',u'hms',7,'p_hms','astropy/coordinates/angle_utilities.py',167),
48+
(u'hms -> generic HOUR',u'hms',2,'p_hms','astropy/coordinates/angle_utilities.py',168),
49+
(u'dms -> sign UINT DEGREE UINT',u'dms',4,'p_dms','astropy/coordinates/angle_utilities.py',179),
50+
(u'dms -> sign UINT DEGREE UINT MINUTE',u'dms',5,'p_dms','astropy/coordinates/angle_utilities.py',180),
51+
(u'dms -> sign UINT DEGREE UINT MINUTE ufloat',u'dms',6,'p_dms','astropy/coordinates/angle_utilities.py',181),
52+
(u'dms -> sign UINT DEGREE UINT MINUTE ufloat SECOND',u'dms',7,'p_dms','astropy/coordinates/angle_utilities.py',182),
53+
(u'dms -> generic DEGREE',u'dms',2,'p_dms','astropy/coordinates/angle_utilities.py',183),
54+
(u'simple -> generic',u'simple',1,'p_simple','astropy/coordinates/angle_utilities.py',194),
55+
(u'simple -> generic SIMPLE_UNIT',u'simple',2,'p_simple','astropy/coordinates/angle_utilities.py',195),
56+
]

‎astropy/coordinates/angle_utilities.py‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from __future__ import unicode_literals
1010

1111
import math
12+
import os
1213
from warnings import warn
1314

1415
from .errors import *
@@ -94,7 +95,12 @@ def t_error(t):
9495
"Invalid character at col {0}".format(t.lexpos))
9596

9697
# Build the lexer
97-
lexer = lex.lex()
98+
try:
99+
from . import angle_lextab
100+
lexer = lex.lex(optimize=True, lextab=angle_lextab)
101+
except ImportError:
102+
lexer = lex.lex(optimize=True, lextab='angle_lextab',
103+
outputdir=os.path.dirname(__file__))
98104

99105
def p_angle(p):
100106
'''
@@ -196,7 +202,13 @@ def p_simple(p):
196202
def p_error(p):
197203
raise ValueError
198204

199-
parser = yacc.yacc(debug=False)
205+
try:
206+
from . import angle_parsetab
207+
parser = yacc.yacc(debug=False, tabmodule=angle_parsetab,
208+
write_tables=False)
209+
except ImportError:
210+
parser = yacc.yacc(debug=False, tabmodule='angle_parsetab',
211+
outputdir=os.path.dirname(__file__))
200212

201213
return parser, lexer
202214

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# Licensed under a 3-clause BSD style license - see LICENSE.rst
2+
23
def get_package_data():
34
return {'astropy.coordinates.tests.accuracy': ['*.csv']}

‎astropy/units/format/cds.py‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from __future__ import (absolute_import, division, print_function,
99
unicode_literals)
1010

11+
import os
1112
import re
1213

1314
from .base import Base
@@ -132,7 +133,12 @@ def t_error(t):
132133
raise ValueError(
133134
"Invalid character at col {0}".format(t.lexpos))
134135

135-
lexer = lex.lex()
136+
try:
137+
from . import cds_lextab
138+
lexer = lex.lex(optimize=True, lextab=cds_lextab)
139+
except ImportError:
140+
lexer = lex.lex(optimize=True, lextab='cds_lextab',
141+
outputdir=os.path.dirname(__file__))
136142

137143
def p_main(p):
138144
'''
@@ -245,7 +251,13 @@ def p_signed_float(p):
245251
def p_error(p):
246252
raise ValueError()
247253

248-
parser = yacc.yacc()
254+
try:
255+
from . import cds_parsetab
256+
parser = yacc.yacc(debug=False, tabmodule=cds_parsetab,
257+
write_tables=False)
258+
except ImportError:
259+
parser = yacc.yacc(debug=False, tabmodule='cds_parsetab',
260+
outputdir=os.path.dirname(__file__))
249261

250262
return parser, lexer
251263

‎astropy/units/format/cds_lextab.py‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# cds_lextab.py. This file automatically created by PLY (version 3.4). Don't edit!
2+
_tabversion = '3.4'
3+
_lextokens = {u'DIVISION': 1, u'PRODUCT': 1, u'SIGN': 1, u'OPEN_PAREN': 1, u'UINT': 1, u'UNIT': 1, u'X': 1, u'CLOSE_PAREN': 1, u'UFLOAT': 1}
4+
_lexreflags = 0
5+
_lexliterals = ''
6+
_lexstateinfo = {'INITIAL': 'inclusive'}
7+
_lexstatere = {'INITIAL': [(u'(?P<t_UFLOAT>((\\d+\\.?\\d+)|(\\.\\d+))([eE][+-]?\\d+)?)|(?P<t_UINT>\\d+)|(?P<t_SIGN>[+-](?=\\d))|(?P<t_X>x)|(?P<t_UNIT>\\%|([a-zA-Z][a-zA-Z_]*))|(?P<t_CLOSE_PAREN>\\))|(?P<t_OPEN_PAREN>\\()|(?P<t_PRODUCT>\\.)|(?P<t_DIVISION>/)', [None, (u't_UFLOAT', 'UFLOAT'), None, None, None, None, (u't_UINT', 'UINT'), (u't_SIGN', 'SIGN'), (u't_X', 'X'), (u't_UNIT', 'UNIT'), None, (None, 'CLOSE_PAREN'), (None, 'OPEN_PAREN'), (None, 'PRODUCT'), (None, 'DIVISION')])]}
8+
_lexstateignore = {'INITIAL': u''}
9+
_lexstateerrorf = {'INITIAL': 't_error'}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
# astropy/units/format/cds_parsetab.py
3+
# This file is automatically generated. Do not edit.
4+
_tabversion = '3.2'
5+
6+
_lr_method = 'LALR'
7+
8+
_lr_signature = '\xce\xb7\xd3.\x0b\x17\xaf\xf6\x1f\x9dSy\x1f\xee\xbd\x1a'
9+
10+
_lr_action_items = {u'DIVISION':([0,4,6,9,10,11,12,13,17,18,20,23,26,27,29,31,32,35,36,],[1,-9,-15,1,-14,-17,1,26,-23,-22,-13,-16,1,1,-10,-21,-18,-11,-12,]),u'PRODUCT':([4,11,13,23,29,32,],[-9,-17,27,-16,-10,-18,]),u'SIGN':([0,10,11,28,30,],[5,22,5,22,22,]),u'OPEN_PAREN':([0,1,6,9,10,12,17,18,20,26,27,31,35,36,],[9,9,-15,9,-14,9,-23,-22,-13,9,9,-21,-11,-12,]),u'UINT':([0,5,7,11,16,21,22,24,],[10,-19,18,-20,28,30,31,32,]),u'CLOSE_PAREN':([2,4,8,11,13,15,19,23,29,32,33,34,],[-4,-9,-3,-17,-6,-7,29,-16,-10,-18,-8,-5,]),u'X':([6,10,17,18,],[16,21,-23,-22,]),'$end':([2,3,4,8,11,13,14,15,23,25,29,32,33,34,],[-4,0,-9,-3,-17,-6,-2,-7,-16,-1,-10,-18,-8,-5,]),u'UNIT':([0,1,6,9,10,12,17,18,20,26,27,31,35,36,],[11,11,-15,11,-14,11,-23,-22,-13,11,11,-21,-11,-12,]),u'UFLOAT':([0,5,7,],[-20,-19,17,]),}
11+
12+
_lr_action = { }
13+
for _k, _v in _lr_action_items.items():
14+
for _x,_y in zip(_v[0],_v[1]):
15+
if not _x in _lr_action: _lr_action[_x] = { }
16+
_lr_action[_x][_k] = _y
17+
del _lr_action_items
18+
19+
_lr_goto_items = {u'division_of_units':([0,9,12,26,27,],[2,2,2,2,2,]),u'main':([0,],[3,]),u'unit_with_power':([0,1,9,12,26,27,],[4,4,4,4,4,4,]),u'signed_float':([0,],[6,]),u'sign':([0,11,],[7,24,]),u'product_of_units':([0,9,12,26,27,],[8,8,8,8,8,]),u'signed_int':([10,28,30,],[20,35,36,]),u'factor':([0,],[12,]),u'unit_expression':([0,1,9,12,26,27,],[13,15,13,13,13,13,]),u'numeric_power':([11,],[23,]),u'combined_units':([0,9,12,26,27,],[14,19,25,33,34,]),}
20+
21+
_lr_goto = { }
22+
for _k, _v in _lr_goto_items.items():
23+
for _x,_y in zip(_v[0],_v[1]):
24+
if not _x in _lr_goto: _lr_goto[_x] = { }
25+
_lr_goto[_x][_k] = _y
26+
del _lr_goto_items
27+
_lr_productions = [
28+
("S' -> main","S'",1,None,None,None),
29+
(u'main -> factor combined_units',u'main',2,'p_main','astropy/units/format/cds.py',145),
30+
(u'main -> combined_units',u'main',1,'p_main','astropy/units/format/cds.py',146),
31+
(u'combined_units -> product_of_units',u'combined_units',1,'p_combined_units','astropy/units/format/cds.py',156),
32+
(u'combined_units -> division_of_units',u'combined_units',1,'p_combined_units','astropy/units/format/cds.py',157),
33+
(u'product_of_units -> unit_expression PRODUCT combined_units',u'product_of_units',3,'p_product_of_units','astropy/units/format/cds.py',163),
34+
(u'product_of_units -> unit_expression',u'product_of_units',1,'p_product_of_units','astropy/units/format/cds.py',164),
35+
(u'division_of_units -> DIVISION unit_expression',u'division_of_units',2,'p_division_of_units','astropy/units/format/cds.py',173),
36+
(u'division_of_units -> unit_expression DIVISION combined_units',u'division_of_units',3,'p_division_of_units','astropy/units/format/cds.py',174),
37+
(u'unit_expression -> unit_with_power',u'unit_expression',1,'p_unit_expression','astropy/units/format/cds.py',183),
38+
(u'unit_expression -> OPEN_PAREN combined_units CLOSE_PAREN',u'unit_expression',3,'p_unit_expression','astropy/units/format/cds.py',184),
39+
(u'factor -> signed_float X UINT signed_int',u'factor',4,'p_factor','astropy/units/format/cds.py',193),
40+
(u'factor -> UINT X UINT signed_int',u'factor',4,'p_factor','astropy/units/format/cds.py',194),
41+
(u'factor -> UINT signed_int',u'factor',2,'p_factor','astropy/units/format/cds.py',195),
42+
(u'factor -> UINT',u'factor',1,'p_factor','astropy/units/format/cds.py',196),
43+
(u'factor -> signed_float',u'factor',1,'p_factor','astropy/units/format/cds.py',197),
44+
(u'unit_with_power -> UNIT numeric_power',u'unit_with_power',2,'p_unit_with_power','astropy/units/format/cds.py',214),
45+
(u'unit_with_power -> UNIT',u'unit_with_power',1,'p_unit_with_power','astropy/units/format/cds.py',215),
46+
(u'numeric_power -> sign UINT',u'numeric_power',2,'p_numeric_power','astropy/units/format/cds.py',224),
47+
(u'sign -> SIGN',u'sign',1,'p_sign','astropy/units/format/cds.py',230),
48+
(u'sign -> <empty>',u'sign',0,'p_sign','astropy/units/format/cds.py',231),
49+
(u'signed_int -> SIGN UINT',u'signed_int',2,'p_signed_int','astropy/units/format/cds.py',240),
50+
(u'signed_float -> sign UINT',u'signed_float',2,'p_signed_float','astropy/units/format/cds.py',246),
51+
(u'signed_float -> sign UFLOAT',u'signed_float',2,'p_signed_float','astropy/units/format/cds.py',247),
52+
]

‎astropy/units/format/generic.py‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from __future__ import (absolute_import, division, print_function,
88
unicode_literals)
99

10+
import os
1011
import re
1112
import sys
1213

@@ -112,7 +113,12 @@ def t_error(t):
112113
raise ValueError(
113114
"Invalid character at col {0}".format(t.lexpos))
114115

115-
lexer = lex.lex()
116+
try:
117+
from . import generic_lextab
118+
lexer = lex.lex(optimize=True, lextab=generic_lextab)
119+
except ImportError:
120+
lexer = lex.lex(optimize=True, lextab='generic_lextab',
121+
outputdir=os.path.dirname(__file__))
116122

117123
def p_main(p):
118124
'''
@@ -308,7 +314,13 @@ def p_function(p):
308314
def p_error(p):
309315
raise ValueError()
310316

311-
parser = yacc.yacc(debug=False)
317+
try:
318+
from . import generic_parsetab
319+
parser = yacc.yacc(debug=False, tabmodule=generic_parsetab,
320+
write_tables=False)
321+
except ImportError:
322+
parser = yacc.yacc(debug=False, tabmodule='generic_parsetab',
323+
outputdir=os.path.dirname(__file__))
312324

313325
return parser, lexer
314326

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# generic_lextab.py. This file automatically created by PLY (version 3.4). Don't edit!
2+
_tabversion = '3.4'
3+
_lextokens = {u'CARET': 1, u'SOLIDUS': 1, u'STAR': 1, u'DOUBLE_STAR': 1, u'PERIOD': 1, u'SQRT': 1, u'SIGN': 1, u'OPEN_PAREN': 1, u'UINT': 1, u'UNIT': 1, u'CLOSE_PAREN': 1, u'UFLOAT': 1}
4+
_lexreflags = 0
5+
_lexliterals = ''
6+
_lexstateinfo = {'INITIAL': 'inclusive'}
7+
_lexstatere = {'INITIAL': [(u'(?P<t_UFLOAT>((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?)|(?P<t_UINT>\\d+)|(?P<t_SIGN>[+-](?=\\d))|(?P<t_SQRT>sqrt)|(?P<t_UNIT>[a-zA-Z][a-zA-Z_]*)|(?P<t_DOUBLE_STAR>\\*\\*)|(?P<t_CARET>\\^)|(?P<t_CLOSE_PAREN>\\))|(?P<t_PERIOD>\\.)|(?P<t_OPEN_PAREN>\\()|(?P<t_STAR>\\*)|(?P<t_SOLIDUS>/)', [None, (u't_UFLOAT', 'UFLOAT'), None, None, None, None, (u't_UINT', 'UINT'), (u't_SIGN', 'SIGN'), (u't_SQRT', 'SQRT'), (u't_UNIT', 'UNIT'), (None, 'DOUBLE_STAR'), (None, 'CARET'), (None, 'CLOSE_PAREN'), (None, 'PERIOD'), (None, 'OPEN_PAREN'), (None, 'STAR'), (None, 'SOLIDUS')])]}
8+
_lexstateignore = {'INITIAL': u' '}
9+
_lexstateerrorf = {'INITIAL': 't_error'}

0 commit comments

Comments
 (0)