enebootools 2.2.2__tar.gz → 2.3.1__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 (85) hide show
  1. {enebootools-2.2.2/enebootools.egg-info → enebootools-2.3.1}/PKG-INFO +3 -4
  2. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/__init__.py +1 -1
  3. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/autoconfig/parsers.py +3 -3
  4. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/etree/ElementPath.py +7 -7
  5. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/etree/ElementTree.py +1 -1
  6. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchapipy.py +8 -44
  7. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchlxml.py +1 -1
  8. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchmodel.py +9 -9
  9. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchpy.py +9 -9
  10. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchqs.py +12 -12
  11. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchtest.py +9 -9
  12. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/packager/pkgjoiner.py +1 -1
  13. {enebootools-2.2.2 → enebootools-2.3.1/enebootools.egg-info}/PKG-INFO +3 -4
  14. enebootools-2.3.1/enebootools.egg-info/requires.txt +2 -0
  15. enebootools-2.2.2/enebootools.egg-info/requires.txt +0 -2
  16. {enebootools-2.2.2 → enebootools-2.3.1}/AUTHORS +0 -0
  17. {enebootools-2.2.2 → enebootools-2.3.1}/LICENSE.gplv3 +0 -0
  18. {enebootools-2.2.2 → enebootools-2.3.1}/README.rst +0 -0
  19. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/__init__.pyc +0 -0
  20. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/__init__.py +0 -0
  21. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/config.py +0 -0
  22. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/database.py +0 -0
  23. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/databasemodels.py +0 -0
  24. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/featureconfig.py +0 -0
  25. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/kobjects.py +0 -0
  26. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/mypeewee.py +0 -0
  27. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/assembler/save_auto.py +0 -0
  28. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/autoconfig/__init__.py +0 -0
  29. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/autoconfig/autoconfig.py +0 -0
  30. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/config/__init__.py +0 -0
  31. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/__init__.py +0 -0
  32. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/certificates/CA_Partners_Gestiweb.crt +0 -0
  33. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/certificates/CA_Test_Partners.crt +0 -0
  34. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/certificates/Eneboo_Open_Source_ERP.crt +0 -0
  35. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/certificates/Partner_Test.crt +0 -0
  36. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/certificates/Partner_Test.pem +0 -0
  37. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/certificates/README.txt +0 -0
  38. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/certificates/__init__.py +0 -0
  39. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/crypto/main.py +0 -0
  40. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/databaseadmin/__init__.py +0 -0
  41. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/databaseadmin/dblayer/__init__.py +0 -0
  42. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/databaseadmin/dblayer/drivers.py +0 -0
  43. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/entry_points.py +0 -0
  44. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/extracttool/__init__.py +0 -0
  45. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/extracttool/extractfunctions.py +0 -0
  46. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/__init__.py +0 -0
  47. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/etree/ElementInclude.py +0 -0
  48. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/etree/__init__.py +0 -0
  49. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/etree/cElementTree.py +0 -0
  50. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/peewee.py +0 -0
  51. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/lib/utils.py +0 -0
  52. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/__init__.py +0 -0
  53. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/__init__.py +0 -0
  54. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/formats/__init__.py +0 -0
  55. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/formats/aq23-kut.xml +0 -0
  56. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/formats/aq23-mtd.xml +0 -0
  57. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/formats/aq23-xml.xml +0 -0
  58. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/formats/qt3-ts.xml +0 -0
  59. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/formats/qt3-ui.xml +0 -0
  60. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/index.xml +0 -0
  61. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/patch-styles/__init__.py +0 -0
  62. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/patch-styles/legacy1-savepatch1.xsl +0 -0
  63. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/patch-styles/legacy1.xml +0 -0
  64. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/etc/patch-styles/semantic1.xml +0 -0
  65. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchdir.py +0 -0
  66. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/flpatchxml.py +0 -0
  67. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/projectbuilder.py +0 -0
  68. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/test/__init__.py +0 -0
  69. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/mergetool/test/test_mergetool.py +0 -0
  70. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/packager/__init__.py +0 -0
  71. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/packager/pkgsplitter.py +0 -0
  72. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/parseargs.py +0 -0
  73. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/parseargs.pyc +0 -0
  74. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/parser/__init__.py +0 -0
  75. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/tools/__init__.py +0 -0
  76. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/tools/ar2kut.py +0 -0
  77. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/tools/dumps.py +0 -0
  78. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/tools/git.py +0 -0
  79. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools/vcsworkflow/__init__.py +0 -0
  80. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools.egg-info/SOURCES.txt +0 -0
  81. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools.egg-info/dependency_links.txt +0 -0
  82. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools.egg-info/entry_points.txt +0 -0
  83. {enebootools-2.2.2 → enebootools-2.3.1}/enebootools.egg-info/top_level.txt +0 -0
  84. {enebootools-2.2.2 → enebootools-2.3.1}/setup.cfg +0 -0
  85. {enebootools-2.2.2 → enebootools-2.3.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.2
2
2
  Name: enebootools
3
- Version: 2.2.2
3
+ Version: 2.3.1
4
4
  Summary: ERP tools for Eneboo
5
5
  Home-page: https://github.com/aulla/eneboo-tools
6
6
  Author: David Martínez Martí, José A. Fernández Fernández
@@ -26,7 +26,7 @@ Requires-Python: >=3.6.9
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE.gplv3
28
28
  License-File: AUTHORS
29
- Requires-Dist: lxml==4.9.3
29
+ Requires-Dist: lxml
30
30
  Requires-Dist: watchdog
31
31
  Dynamic: author
32
32
  Dynamic: author-email
@@ -35,7 +35,6 @@ Dynamic: description
35
35
  Dynamic: description-content-type
36
36
  Dynamic: home-page
37
37
  Dynamic: keywords
38
- Dynamic: license-file
39
38
  Dynamic: requires-dist
40
39
  Dynamic: requires-python
41
40
  Dynamic: summary
@@ -8,7 +8,7 @@ from pprint import pformat
8
8
  import enebootools.parseargs as pa
9
9
 
10
10
 
11
- __VERSION__ = "2.2.2"
11
+ __VERSION__ = "2.3.1"
12
12
  QS_EXTEND_MODE = "legacy"
13
13
 
14
14
 
@@ -12,18 +12,18 @@ def get_int(x):
12
12
  def get_float(x):
13
13
  if type(x) is int: return x
14
14
  x = str(x)
15
- if not re.match("[0-9\.]+$",x): raise ValueError("value %s is not a float" % repr(x))
15
+ if not re.match(r"[0-9\.]+$",x): raise ValueError("value %s is not a float" % repr(x))
16
16
  return float(x)
17
17
 
18
18
  def get_hostname(x):
19
19
  x = get_string(x)
20
- if not re.match("[a-z0-9\.]+$",x): raise ValueError("value %s is not a valid hostname" % repr(x))
20
+ if not re.match(r"[a-z0-9\.]+$",x): raise ValueError("value %s is not a valid hostname" % repr(x))
21
21
  return x
22
22
 
23
23
  def get_identifier(x):
24
24
  if x == "None" or x is None: return None
25
25
  x = get_string(x)
26
- if not re.match("\w+$",x): raise ValueError("value %s is not a valid identifier" % repr(x))
26
+ if not re.match(r"\w+$",x): raise ValueError("value %s is not a valid identifier" % repr(x))
27
27
  return x
28
28
 
29
29
  def get_ipaddress(x):
@@ -63,11 +63,11 @@ xpath_tokenizer_re = re.compile(
63
63
  "'[^']*'|\"[^\"]*\"|"
64
64
  "::|"
65
65
  "//?|"
66
- "\.\.|"
67
- "\(\)|"
68
- "[/.*:\[\]\(\)@=])|"
69
- "((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|"
70
- "\s+"
66
+ r"\.\.|"
67
+ r"\(\)|"
68
+ r"[/.*:\[\]\(\)@=])|"
69
+ r"((?:\{[^}]+\})?[^/\[\]\(\)@=\s]+)|"
70
+ r"\s+"
71
71
  )
72
72
 
73
73
  def xpath_tokenizer(pattern, namespaces=None):
@@ -176,7 +176,7 @@ def prepare_predicate(next, token):
176
176
  if elem.get(key) == value:
177
177
  yield elem
178
178
  return select
179
- if signature == "-" and not re.match("\d+$", predicate[0]):
179
+ if signature == "-" and not re.match(r"\d+$", predicate[0]):
180
180
  # [tag]
181
181
  tag = predicate[0]
182
182
  def select(context, result):
@@ -184,7 +184,7 @@ def prepare_predicate(next, token):
184
184
  if elem.find(tag) is not None:
185
185
  yield elem
186
186
  return select
187
- if signature == "-='" and not re.match("\d+$", predicate[0]):
187
+ if signature == "-='" and not re.match(r"\d+$", predicate[0]):
188
188
  # [tag='value']
189
189
  tag = predicate[0]
190
190
  value = predicate[-1]
@@ -1022,7 +1022,7 @@ _serialize = {
1022
1022
  # invalid.
1023
1023
 
1024
1024
  def register_namespace(prefix, uri):
1025
- if re.match("ns\d+$", prefix):
1025
+ if re.match(r"ns\d+$", prefix):
1026
1026
  raise ValueError("Prefix format reserved for internal use")
1027
1027
  for k, v in list(_namespace_map.items()):
1028
1028
  if k == uri or v == prefix:
@@ -155,7 +155,7 @@ def pyclass_reader(iface, file_name, file_lines):
155
155
  line2 = latin1_to_ascii(line)
156
156
  m = re.search(r"#\s*@\s*([\w\.,;-]+)\s+([^ #]+)", line2)
157
157
  if m:
158
- m2 = re.search("^\s*# @(\w+)( \w+)", line)
158
+ m2 = re.search(r"^\s*# @(\w+)( \w+)", line)
159
159
  if not m2:
160
160
  iface.warn("Formato incorrecto de la linea %s" % repr(line))
161
161
  dtype = m.group(1)
@@ -174,7 +174,7 @@ def pyclass_reader(iface, file_name, file_lines):
174
174
  for l in class_lines[:32]:
175
175
  # m = re.search("class\s+(?P<cname>\w+)\(((?P<cbase>\w+),)?(((?P<cfrom>\w.)+))\)",l)
176
176
  m = re.search(
177
- "class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
177
+ r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
178
178
  )
179
179
  if m:
180
180
  heu_cname = m.group("cname")
@@ -184,46 +184,10 @@ def pyclass_reader(iface, file_name, file_lines):
184
184
  if heu_dtype is None:
185
185
  heu_cnames = []
186
186
  other_functions = []
187
- """ for l in class_lines:
188
- m = re.search("def\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
189
- if m:
190
- heu_cname = m.group("cname")
191
- if heu_cname not in heu_cnames:
192
- heu_cnames.append(heu_cname)
193
- if heu_cname != cname:
194
- other_functions.append(l)
195
- if len(heu_cnames) > 1:
196
- iface.error(
197
- "En la clase %s existen funciones para diferentes clases (file: %s)"
198
- % (cname, file_name)
199
- )
200
- for l in other_functions:
201
- iface.error(">>>" + l)
202
-
203
- if cname in heu_cnames:
204
- heu_cname = cname """
205
187
 
206
188
  if heu_cname:
207
189
  heu_dtype = "class_definition"
208
190
 
209
- """ if heu_dtype and dtype != "delete_class":
210
- heu_line = "# @%s %s #" % (heu_dtype, heu_cname)
211
- myline = "# @%s %s #" % (dtype, cname)
212
- if "_" in cname:
213
- iface.info(
214
- "La autodetección de contenido de bloques no funciona con clases que contengan el carácter de guión bajo como %r"
215
- % cname
216
- )
217
- elif heu_line != myline:
218
- iface.error(
219
- "La definición de bloque %r no corresponde con el contenido (file: %s:%d) ... asumiendo '%s'"
220
- % (line2.strip(), file_name, n, heu_line)
221
- )
222
- dtype, cname = heu_dtype, heu_cname
223
- classpatch += ["@@ -%d,1 +%d,1 @@" % (n + 1, n + 1)]
224
- classpatch += ["-%s" % line2.rstrip()]
225
- classpatch += ["+%s" % heu_line] """
226
-
227
191
  npos = len(linelist)
228
192
  if dtype == "class_declaration":
229
193
  if cname in classes:
@@ -284,7 +248,7 @@ def pyclass_reader(iface, file_name, file_lines):
284
248
  linelist[-1].append(n)
285
249
  linelist.append(found)
286
250
  # const iface = new ifaceCtx( this );
287
- m = re.search("self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
251
+ m = re.search(r"self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
288
252
 
289
253
  if m:
290
254
  iface_n = {
@@ -312,7 +276,7 @@ def pyclass_reader(iface, file_name, file_lines):
312
276
  def extract_class_decl_info(iface, text_lines):
313
277
  classdict = {}
314
278
  for n, line in enumerate(text_lines):
315
- m = re.search("class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
279
+ m = re.search(r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
316
280
  if m:
317
281
  cname = m.group("cname")
318
282
  classdict[cname] = {
@@ -692,7 +656,7 @@ def patch_py_dir(iface, base, patch):
692
656
  line = line.strip()
693
657
  if len(line) == 0:
694
658
  continue
695
- match = re.match("^([\w,]+) \((\w+)\) ([\w,]+)", line)
659
+ match = re.match(r"^([\w,]+) \((\w+)\) ([\w,]+)", line)
696
660
  if not match:
697
661
  iface.error("Línea de movimiento de clases malformada: %s" % (repr(line)))
698
662
  continue
@@ -1292,7 +1256,7 @@ def diff_py_dir(iface, base, final):
1292
1256
  prev_lines, post_lines = unprinted_lines[:idx], unprinted_lines[idx + 1 :]
1293
1257
  if len(prev_lines) > 3:
1294
1258
  for j in reversed(prev_lines):
1295
- if re.search("^\s*(def|class) ", diff[j]):
1259
+ if re.search(r"^\s*(def|class) ", diff[j]):
1296
1260
  break
1297
1261
  omitted = len(prev_lines[: prev_lines.index(j)])
1298
1262
  if omitted > 20:
@@ -1971,7 +1935,7 @@ def fix_class(iface, flbase, clbase, cdbase, classname, **updates):
1971
1935
  end_line = clbase["list"][decl_block_no][3]
1972
1936
  for n, line in enumerate(flbase[line_no:end_line], line_no):
1973
1937
  m_it = re.finditer(
1974
- "def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1938
+ r"def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1975
1939
  line,
1976
1940
  )
1977
1941
  for m in m_it:
@@ -2005,7 +1969,7 @@ def check_class(iface, flbase, clbase, cdbase, classname):
2005
1969
  for n, line in enumerate(flbase[line_no:end_line], line_no):
2006
1970
  # match = list(re.finditer("def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)", line))
2007
1971
  match = list(
2008
- re.finditer("super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
1972
+ re.finditer(r"super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
2009
1973
  )
2010
1974
  if match:
2011
1975
  line_found.append(line)
@@ -862,7 +862,7 @@ class XMLDiffer(object):
862
862
  newelement = e
863
863
 
864
864
  if newelement is None: # Intentar mas a fondo:
865
- m = re.match("(\w+)\[(\w+),(\d+)\]", p0)
865
+ m = re.match(r"(\w+)\[(\w+),(\d+)\]", p0)
866
866
  if m:
867
867
  tagname = m.group(1)
868
868
  number = int(m.group(3)) - 1
@@ -154,7 +154,7 @@ def modelclass_reader(iface, file_name, file_lines):
154
154
  line2 = latin1_to_ascii(line)
155
155
  m = re.search(r"#\s*@\s*([\w\.,;-]+)\s+([^ #]+)", line2)
156
156
  if m:
157
- m2 = re.search("^\s*# @(\w+)( \w+)", line)
157
+ m2 = re.search(r"^\s*# @(\w+)( \w+)", line)
158
158
  if not m2:
159
159
  iface.warn("Formato incorrecto de la linea %s" % repr(line))
160
160
  dtype = m.group(1)
@@ -173,7 +173,7 @@ def modelclass_reader(iface, file_name, file_lines):
173
173
  for l in class_lines[:32]:
174
174
  # m = re.search("class\s+(?P<cname>\w+)\(((?P<cbase>\w+),)?(((?P<cfrom>\w.)+))\)",l)
175
175
  m = re.search(
176
- "class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
176
+ r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
177
177
  )
178
178
  if m:
179
179
  heu_cname = m.group("cname")
@@ -184,7 +184,7 @@ def modelclass_reader(iface, file_name, file_lines):
184
184
  heu_cnames = []
185
185
  other_functions = []
186
186
  for l in class_lines:
187
- m = re.search("def\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
187
+ m = re.search(r"def\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
188
188
  if m:
189
189
  heu_cname = m.group("cname")
190
190
  if heu_cname not in heu_cnames:
@@ -283,7 +283,7 @@ def modelclass_reader(iface, file_name, file_lines):
283
283
  linelist[-1].append(n)
284
284
  linelist.append(found)
285
285
  # const iface = new ifaceCtx( this );
286
- m = re.search("self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
286
+ m = re.search(r"self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
287
287
 
288
288
  if m:
289
289
  iface_n = {
@@ -311,7 +311,7 @@ def modelclass_reader(iface, file_name, file_lines):
311
311
  def extract_class_decl_info(iface, text_lines):
312
312
  classdict = {}
313
313
  for n, line in enumerate(text_lines):
314
- m = re.search("class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
314
+ m = re.search(r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
315
315
  if m:
316
316
  cname = m.group("cname")
317
317
  classdict[cname] = {
@@ -691,7 +691,7 @@ def patch_model_dir(iface, base, patch):
691
691
  line = line.strip()
692
692
  if len(line) == 0:
693
693
  continue
694
- match = re.match("^([\w,]+) \((\w+)\) ([\w,]+)", line)
694
+ match = re.match(r"^([\w,]+) \((\w+)\) ([\w,]+)", line)
695
695
  if not match:
696
696
  iface.error("Línea de movimiento de clases malformada: %s" % (repr(line)))
697
697
  continue
@@ -1291,7 +1291,7 @@ def diff_model_dir(iface, base, final):
1291
1291
  prev_lines, post_lines = unprinted_lines[:idx], unprinted_lines[idx + 1 :]
1292
1292
  if len(prev_lines) > 3:
1293
1293
  for j in reversed(prev_lines):
1294
- if re.search("^\s*(def|class) ", diff[j]):
1294
+ if re.search(r"^\s*(def|class) ", diff[j]):
1295
1295
  break
1296
1296
  omitted = len(prev_lines[: prev_lines.index(j)])
1297
1297
  if omitted > 20:
@@ -1986,7 +1986,7 @@ def fix_class(iface, flbase, clbase, cdbase, classname, **updates):
1986
1986
  end_line = clbase["list"][decl_block_no][3]
1987
1987
  for n, line in enumerate(flbase[line_no:end_line], line_no):
1988
1988
  m_it = re.finditer(
1989
- "def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1989
+ r"def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1990
1990
  line,
1991
1991
  )
1992
1992
  for m in m_it:
@@ -2020,7 +2020,7 @@ def check_class(iface, flbase, clbase, cdbase, classname):
2020
2020
  for n, line in enumerate(flbase[line_no:end_line], line_no):
2021
2021
  # match = list(re.finditer("def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)", line))
2022
2022
  match = list(
2023
- re.finditer("super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
2023
+ re.finditer(r"super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
2024
2024
  )
2025
2025
  if match:
2026
2026
  line_found.append(line)
@@ -154,7 +154,7 @@ def pyclass_reader(iface, file_name, file_lines):
154
154
  line2 = latin1_to_ascii(line)
155
155
  m = re.search(r"#\s*@\s*([\w\.,;-]+)\s+([^ #]+)", line2)
156
156
  if m:
157
- m2 = re.search("^\s*# @(\w+)( \w+)", line)
157
+ m2 = re.search(r"^\s*# @(\w+)( \w+)", line)
158
158
  if not m2:
159
159
  iface.warn("Formato incorrecto de la linea %s" % repr(line))
160
160
  dtype = m.group(1)
@@ -173,7 +173,7 @@ def pyclass_reader(iface, file_name, file_lines):
173
173
  for l in class_lines[:32]:
174
174
  # m = re.search("class\s+(?P<cname>\w+)\(((?P<cbase>\w+),)?(((?P<cfrom>\w.)+))\)",l)
175
175
  m = re.search(
176
- "class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
176
+ r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
177
177
  )
178
178
  if m:
179
179
  heu_cname = m.group("cname")
@@ -184,7 +184,7 @@ def pyclass_reader(iface, file_name, file_lines):
184
184
  heu_cnames = []
185
185
  other_functions = []
186
186
  for l in class_lines:
187
- m = re.search("def\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
187
+ m = re.search(r"def\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
188
188
  if m:
189
189
  heu_cname = m.group("cname")
190
190
  if heu_cname not in heu_cnames:
@@ -283,7 +283,7 @@ def pyclass_reader(iface, file_name, file_lines):
283
283
  linelist[-1].append(n)
284
284
  linelist.append(found)
285
285
  # const iface = new ifaceCtx( this );
286
- m = re.search("self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
286
+ m = re.search(r"self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
287
287
 
288
288
  if m:
289
289
  iface_n = {
@@ -311,7 +311,7 @@ def pyclass_reader(iface, file_name, file_lines):
311
311
  def extract_class_decl_info(iface, text_lines):
312
312
  classdict = {}
313
313
  for n, line in enumerate(text_lines):
314
- m = re.search("class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
314
+ m = re.search(r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
315
315
  if m:
316
316
  cname = m.group("cname")
317
317
  classdict[cname] = {
@@ -691,7 +691,7 @@ def patch_py_dir(iface, base, patch):
691
691
  line = line.strip()
692
692
  if len(line) == 0:
693
693
  continue
694
- match = re.match("^([\w,]+) \((\w+)\) ([\w,]+)", line)
694
+ match = re.match(r"^([\w,]+) \((\w+)\) ([\w,]+)", line)
695
695
  if not match:
696
696
  iface.error("Línea de movimiento de clases malformada: %s" % (repr(line)))
697
697
  continue
@@ -1291,7 +1291,7 @@ def diff_py_dir(iface, base, final):
1291
1291
  prev_lines, post_lines = unprinted_lines[:idx], unprinted_lines[idx + 1 :]
1292
1292
  if len(prev_lines) > 3:
1293
1293
  for j in reversed(prev_lines):
1294
- if re.search("^\s*(def|class) ", diff[j]):
1294
+ if re.search(r"^\s*(def|class) ", diff[j]):
1295
1295
  break
1296
1296
  omitted = len(prev_lines[: prev_lines.index(j)])
1297
1297
  if omitted > 20:
@@ -1970,7 +1970,7 @@ def fix_class(iface, flbase, clbase, cdbase, classname, **updates):
1970
1970
  end_line = clbase["list"][decl_block_no][3]
1971
1971
  for n, line in enumerate(flbase[line_no:end_line], line_no):
1972
1972
  m_it = re.finditer(
1973
- "def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1973
+ r"def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1974
1974
  line,
1975
1975
  )
1976
1976
  for m in m_it:
@@ -2004,7 +2004,7 @@ def check_class(iface, flbase, clbase, cdbase, classname):
2004
2004
  for n, line in enumerate(flbase[line_no:end_line], line_no):
2005
2005
  # match = list(re.finditer("def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)", line))
2006
2006
  match = list(
2007
- re.finditer("super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
2007
+ re.finditer(r"super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
2008
2008
  )
2009
2009
  if match:
2010
2010
  line_found.append(line)
@@ -154,7 +154,7 @@ def qsclass_reader(iface, file_name, file_lines):
154
154
  line2 = latin1_to_ascii(line)
155
155
  m = re.search(r"/\*\*?\s*@\s*([\w\.,;-]+)\s+([^ */]+)?\s*\*/", line2)
156
156
  if m:
157
- m2 = re.search("^\s*/\*\* @(\w+)( \w+)?\s*\*/\s*$", line)
157
+ m2 = re.search(r"^\s*/\*\* @(\w+)( \w+)?\s*\*/\s*$", line)
158
158
  if not m2:
159
159
  iface.warn("Formato incorrecto de la linea %s" % repr(line))
160
160
  dtype = m.group(1)
@@ -172,7 +172,7 @@ def qsclass_reader(iface, file_name, file_lines):
172
172
  heu_from = None
173
173
  for l in class_lines[:32]:
174
174
  m = re.search(
175
- "class\s+(?P<cname>\w+)(\s+extends\s+(?P<cbase>\w+))?(\s+/\*\*\s+%from:\s+(?P<cfrom>\w+)\s+\*/)?",
175
+ r"class\s+(?P<cname>\w+)(\s+extends\s+(?P<cbase>\w+))?(\s+/\*\*\s+%from:\s+(?P<cfrom>\w+)\s+\*/)?",
176
176
  l,
177
177
  )
178
178
  if m:
@@ -184,7 +184,7 @@ def qsclass_reader(iface, file_name, file_lines):
184
184
  heu_cnames = []
185
185
  other_functions = []
186
186
  for l in class_lines:
187
- m = re.search("^function\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
187
+ m = re.search(r"^function\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
188
188
  if m:
189
189
  heu_cname = m.group("cname")
190
190
  if heu_cname not in heu_cnames:
@@ -283,7 +283,7 @@ def qsclass_reader(iface, file_name, file_lines):
283
283
  linelist[-1].append(n)
284
284
  linelist.append(found)
285
285
  # const iface = new ifaceCtx( this );
286
- m = re.search("(const|var)\s+iface\s*=\s*new\s*(?P<classname>\w+)\(\s*this\s*\);?", line)
286
+ m = re.search(r"(const|var)\s+iface\s*=\s*new\s*(?P<classname>\w+)\(\s*this\s*\);?", line)
287
287
 
288
288
  if m:
289
289
  iface_n = {
@@ -311,7 +311,7 @@ def extract_class_decl_info(iface, text_lines):
311
311
  classdict = {}
312
312
  for n, line in enumerate(text_lines):
313
313
  m = re.search(
314
- "class\s+(?P<cname>\w+)(\s+extends\s+(?P<cbase>\w+))?(\s+/\*\*\s+%from:\s+(?P<cfrom>\w+)\s+\*/)?",
314
+ r"class\s+(?P<cname>\w+)(\s+extends\s+(?P<cbase>\w+))?(\s+/\*\*\s+%from:\s+(?P<cfrom>\w+)\s+\*/)?",
315
315
  line,
316
316
  )
317
317
  if m:
@@ -688,7 +688,7 @@ def patch_qs_dir(iface, base, patch):
688
688
  line = line.strip()
689
689
  if len(line) == 0:
690
690
  continue
691
- match = re.match("^([\w,]+) \((\w+)\) ([\w,]+)", line)
691
+ match = re.match(r"^([\w,]+) \((\w+)\) ([\w,]+)", line)
692
692
  if not match:
693
693
  iface.error("Línea de movimiento de clases malformada: %s" % (repr(line)))
694
694
  continue
@@ -1287,7 +1287,7 @@ def diff_qs_dir(iface, base, final):
1287
1287
  prev_lines, post_lines = unprinted_lines[:idx], unprinted_lines[idx + 1 :]
1288
1288
  if len(prev_lines) > 3:
1289
1289
  for j in reversed(prev_lines):
1290
- if re.search("^\s*(function|class) ", diff[j]):
1290
+ if re.search(r"^\s*(function|class) ", diff[j]):
1291
1291
  break
1292
1292
  omitted = len(prev_lines[: prev_lines.index(j)])
1293
1293
  if omitted > 20:
@@ -2023,7 +2023,7 @@ def fix_class(iface, flbase, clbase, cdbase, classname, **updates):
2023
2023
  decl_block_no = clbase["decl"][classname]
2024
2024
  end_line = clbase["list"][decl_block_no][3]
2025
2025
  for n, line in enumerate(flbase[line_no:end_line], line_no):
2026
- m_it = re.finditer("(?P<fname>\w+)\s*\(\s*context\s*\);?", line)
2026
+ m_it = re.finditer(r"(?P<fname>\w+)\s*\(\s*context\s*\);?", line)
2027
2027
  for m in m_it:
2028
2028
  if m.group("fname") != cdbase[dclassname]["extends"]:
2029
2029
  continue
@@ -2053,7 +2053,7 @@ def check_class(iface, flbase, clbase, cdbase, classname):
2053
2053
  found = []
2054
2054
  line_found = []
2055
2055
  for n, line in enumerate(flbase[line_no:end_line], line_no):
2056
- match = list(re.finditer("(?P<fname>\w+)\s*\(\s*context\s*\);", line))
2056
+ match = list(re.finditer(r"(?P<fname>\w+)\s*\(\s*context\s*\);", line))
2057
2057
  if match:
2058
2058
  line_found.append(line)
2059
2059
  found += match
@@ -2080,7 +2080,7 @@ def qsclass_functions(iface, file_lines):
2080
2080
  line2 = latin1_to_ascii(line)
2081
2081
  m = re.search(r"/\*\*?\s*@\s*([\w\.,;-]+)\s+([^ */]+)?\s*\*/", line2)
2082
2082
  if m:
2083
- m2 = re.search("^\s*/\*\* @(\w+)( \w+)?\s*\*/\s*$", line)
2083
+ m2 = re.search(r"^\s*/\*\* @(\w+)( \w+)?\s*\*/\s*$", line)
2084
2084
  if not m2:
2085
2085
  iface.warn("Formato incorrecto de la linea %s" % repr(line))
2086
2086
  dtype = m.group(1)
@@ -2098,7 +2098,7 @@ def qsclass_functions(iface, file_lines):
2098
2098
  heu_from = None
2099
2099
  for l in class_lines[:32]:
2100
2100
  m = re.search(
2101
- "class\s+(?P<cname>\w+)(\s+extends\s+(?P<cbase>\w+))?(\s+/\*\*\s+%from:\s+(?P<cfrom>\w+)\s+\*/)?",
2101
+ r"class\s+(?P<cname>\w+)(\s+extends\s+(?P<cbase>\w+))?(\s+/\*\*\s+%from:\s+(?P<cfrom>\w+)\s+\*/)?",
2102
2102
  l,
2103
2103
  )
2104
2104
  if m:
@@ -2110,7 +2110,7 @@ def qsclass_functions(iface, file_lines):
2110
2110
  heu_cnames = []
2111
2111
  other_functions = []
2112
2112
  for l in class_lines:
2113
- m = re.search("^function\s+(?P<cname>[a-zA-Z0-9]+)_(?P<fname>\w+)", l)
2113
+ m = re.search(r"^function\s+(?P<cname>[a-zA-Z0-9]+)_(?P<fname>\w+)", l)
2114
2114
  if m:
2115
2115
  fun_name = m.group("fname")
2116
2116
  class_name = m.group("cname")
@@ -154,7 +154,7 @@ def testclass_reader(iface, file_name, file_lines):
154
154
  line2 = latin1_to_ascii(line)
155
155
  m = re.search(r"#\s*@\s*([\w\.,;-]+)\s+([^ #]+)?\s*#", line2)
156
156
  if m:
157
- m2 = re.search("^\s*# @(\w+)( \w+)?\s#\s*$", line)
157
+ m2 = re.search(r"^\s*# @(\w+)( \w+)?\s#\s*$", line)
158
158
  if not m2:
159
159
  iface.warn("Formato incorrecto de la linea %s" % repr(line))
160
160
  dtype = m.group(1)
@@ -173,7 +173,7 @@ def testclass_reader(iface, file_name, file_lines):
173
173
  for l in class_lines[:32]:
174
174
  # m = re.search("class\s+(?P<cname>\w+)\(((?P<cbase>\w+),)?(((?P<cfrom>\w.)+))\)",l)
175
175
  m = re.search(
176
- "class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
176
+ r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", l
177
177
  )
178
178
  if m:
179
179
  heu_cname = m.group("cname")
@@ -184,7 +184,7 @@ def testclass_reader(iface, file_name, file_lines):
184
184
  heu_cnames = []
185
185
  other_functions = []
186
186
  for l in class_lines:
187
- m = re.search("def\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
187
+ m = re.search(r"def\s+(?P<cname>[a-zA-Z0-9]+)_\w+", l)
188
188
  if m:
189
189
  heu_cname = m.group("cname")
190
190
  if heu_cname not in heu_cnames:
@@ -283,7 +283,7 @@ def testclass_reader(iface, file_name, file_lines):
283
283
  linelist[-1].append(n)
284
284
  linelist.append(found)
285
285
  # const iface = new ifaceCtx( this );
286
- m = re.search("self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
286
+ m = re.search(r"self.iface\s*=\s*(?P<classname>\w+)\(\s*self\s*\)", line)
287
287
 
288
288
  if m:
289
289
  iface_n = {
@@ -311,7 +311,7 @@ def testclass_reader(iface, file_name, file_lines):
311
311
  def extract_class_decl_info(iface, text_lines):
312
312
  classdict = {}
313
313
  for n, line in enumerate(text_lines):
314
- m = re.search("class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
314
+ m = re.search(r"class\s+(?P<cname>([\w.])+)\(((?P<cbase>.+))(,(?P<cfrom>([\w.])+))?\)", line)
315
315
  if m:
316
316
  cname = m.group("cname")
317
317
  classdict[cname] = {
@@ -691,7 +691,7 @@ def patch_test_dir(iface, base, patch):
691
691
  line = line.strip()
692
692
  if len(line) == 0:
693
693
  continue
694
- match = re.match("^([\w,]+) \((\w+)\) ([\w,]+)", line)
694
+ match = re.match(r"^([\w,]+) \((\w+)\) ([\w,]+)", line)
695
695
  if not match:
696
696
  iface.error("Línea de movimiento de clases malformada: %s" % (repr(line)))
697
697
  continue
@@ -1292,7 +1292,7 @@ def diff_test_dir(iface, base, final):
1292
1292
  prev_lines, post_lines = unprinted_lines[:idx], unprinted_lines[idx + 1 :]
1293
1293
  if len(prev_lines) > 3:
1294
1294
  for j in reversed(prev_lines):
1295
- if re.search("^\s*(def|class) ", diff[j]):
1295
+ if re.search(r"^\s*(def|class) ", diff[j]):
1296
1296
  break
1297
1297
  omitted = len(prev_lines[: prev_lines.index(j)])
1298
1298
  if omitted > 20:
@@ -1984,7 +1984,7 @@ def fix_class(iface, flbase, clbase, cdbase, classname, **updates):
1984
1984
  end_line = clbase["list"][decl_block_no][3]
1985
1985
  for n, line in enumerate(flbase[line_no:end_line], line_no):
1986
1986
  m_it = re.finditer(
1987
- "def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1987
+ r"def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)",
1988
1988
  line,
1989
1989
  )
1990
1990
  for m in m_it:
@@ -2018,7 +2018,7 @@ def check_class(iface, flbase, clbase, cdbase, classname):
2018
2018
  for n, line in enumerate(flbase[line_no:end_line], line_no):
2019
2019
  # match = list(re.finditer("def\s*__init__\(self, context\s*=\s*None\):\n\s*super\(?P<fname>\w+,\s*self\)\.__init__\(\s*context\s*\)", line))
2020
2020
  match = list(
2021
- re.finditer("super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
2021
+ re.finditer(r"super\((?P<fname>\w+),\s*self\)\.__init__\(\s*context\s*\)", line)
2022
2022
  )
2023
2023
  if match:
2024
2024
  line_found.append(line)
@@ -152,7 +152,7 @@ def createpkg(iface, modulefolder, dst_file, emulate_mode):
152
152
  break
153
153
 
154
154
  files = find_files(fpath)
155
- modulename = re.search("^\w+", module).group(0)
155
+ modulename = re.search(r"^\w+", module).group(0)
156
156
  if modulename in list_modules:
157
157
  print("módulo %s (%s) Duplicado. Ignorado." % (modulename, fpath))
158
158
  continue
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.2
2
2
  Name: enebootools
3
- Version: 2.2.2
3
+ Version: 2.3.1
4
4
  Summary: ERP tools for Eneboo
5
5
  Home-page: https://github.com/aulla/eneboo-tools
6
6
  Author: David Martínez Martí, José A. Fernández Fernández
@@ -26,7 +26,7 @@ Requires-Python: >=3.6.9
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE.gplv3
28
28
  License-File: AUTHORS
29
- Requires-Dist: lxml==4.9.3
29
+ Requires-Dist: lxml
30
30
  Requires-Dist: watchdog
31
31
  Dynamic: author
32
32
  Dynamic: author-email
@@ -35,7 +35,6 @@ Dynamic: description
35
35
  Dynamic: description-content-type
36
36
  Dynamic: home-page
37
37
  Dynamic: keywords
38
- Dynamic: license-file
39
38
  Dynamic: requires-dist
40
39
  Dynamic: requires-python
41
40
  Dynamic: summary
@@ -0,0 +1,2 @@
1
+ lxml
2
+ watchdog
@@ -1,2 +0,0 @@
1
- lxml==4.9.3
2
- watchdog
File without changes
File without changes
File without changes
File without changes
File without changes