python-sat 1.9.dev10__tar.gz → 1.9.dev11__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.

Potentially problematic release.


This version of python-sat might be problematic. Click here for more details.

Files changed (118) hide show
  1. {python_sat-1.9.dev10/python_sat.egg-info → python_sat-1.9.dev11}/PKG-INFO +1 -1
  2. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/__init__.py +1 -1
  3. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/formula.py +16 -1
  4. {python_sat-1.9.dev10 → python_sat-1.9.dev11/python_sat.egg-info}/PKG-INFO +1 -1
  5. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/LICENSE.txt +0 -0
  6. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/MANIFEST.in +0 -0
  7. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/README.rst +0 -0
  8. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/allies/__init__.py +0 -0
  9. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/allies/approxmc.py +0 -0
  10. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/allies/unigen.py +0 -0
  11. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/bitwise.hh +0 -0
  12. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/card.hh +0 -0
  13. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/clset.hh +0 -0
  14. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/common.hh +0 -0
  15. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/itot.hh +0 -0
  16. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/ladder.hh +0 -0
  17. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/mto.hh +0 -0
  18. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/pairwise.hh +0 -0
  19. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/ptypes.hh +0 -0
  20. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/pycard.cc +0 -0
  21. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/seqcounter.hh +0 -0
  22. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/sortcard.hh +0 -0
  23. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/cardenc/utils.hh +0 -0
  24. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/__init__.py +0 -0
  25. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/bbscan.py +0 -0
  26. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/bica.py +0 -0
  27. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/fm.py +0 -0
  28. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/genhard.py +0 -0
  29. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/hitman.py +0 -0
  30. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/lbx.py +0 -0
  31. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/lsu.py +0 -0
  32. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/mcsls.py +0 -0
  33. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/models.py +0 -0
  34. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/musx.py +0 -0
  35. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/optux.py +0 -0
  36. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/primer.py +0 -0
  37. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/rc2.py +0 -0
  38. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/examples/usage.py +0 -0
  39. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pf_parse.cc +0 -0
  40. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pf_plus.cc +0 -0
  41. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pf_plus.hh +0 -0
  42. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pf_py.hh +0 -0
  43. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pf_scan.hh +0 -0
  44. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pf_weight.cc +0 -0
  45. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pf_weight.hh +0 -0
  46. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pyformula.cc +0 -0
  47. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/formula/pyformula.hh +0 -0
  48. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/_fileio.py +0 -0
  49. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/_utils.py +0 -0
  50. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/card.py +0 -0
  51. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/engines.py +0 -0
  52. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/integer.py +0 -0
  53. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/pb.py +0 -0
  54. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/process.py +0 -0
  55. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/pysat/solvers.py +0 -0
  56. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/python_sat.egg-info/SOURCES.txt +0 -0
  57. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/python_sat.egg-info/dependency_links.txt +0 -0
  58. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/python_sat.egg-info/requires.txt +0 -0
  59. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/python_sat.egg-info/top_level.txt +0 -0
  60. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/requirements.txt +0 -0
  61. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/setup.cfg +0 -0
  62. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/setup.py +0 -0
  63. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/cadical103.tar.gz +0 -0
  64. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/cadical153.tar.gz +0 -0
  65. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/cadical195.tar.gz +0 -0
  66. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/cadical300.tar.gz +0 -0
  67. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/glucose30.tar.gz +0 -0
  68. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/glucose41.tar.gz +0 -0
  69. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/glucose421.tar.gz +0 -0
  70. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/lingeling.tar.gz +0 -0
  71. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/maplechrono.zip +0 -0
  72. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/maplecm.zip +0 -0
  73. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/maplesat.zip +0 -0
  74. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/mergesat3.tar.gz +0 -0
  75. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/minicard.tar.gz +0 -0
  76. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/minisat22.tar.gz +0 -0
  77. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/minisatgh.zip +0 -0
  78. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/cadical103.patch +0 -0
  79. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/cadical153.patch +0 -0
  80. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/cadical195.patch +0 -0
  81. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/cadical300.patch +0 -0
  82. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/glucose30.patch +0 -0
  83. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/glucose41.patch +0 -0
  84. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/glucose421.patch +0 -0
  85. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/gluecard30.patch +0 -0
  86. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/gluecard41.patch +0 -0
  87. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/kissat404.patch +0 -0
  88. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/lingeling.patch +0 -0
  89. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/maplechrono.patch +0 -0
  90. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/maplecm.patch +0 -0
  91. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/maplesat.patch +0 -0
  92. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/mergesat3.patch +0 -0
  93. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/minicard.patch +0 -0
  94. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/minisat22.patch +0 -0
  95. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/minisatep.patch +0 -0
  96. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/patches/minisatgh.patch +0 -0
  97. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/prepare.py +0 -0
  98. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/solvers/pysolvers.cc +0 -0
  99. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_accum_stats.py +0 -0
  100. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_atmost.py +0 -0
  101. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_atmost1.py +0 -0
  102. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_atmostk.py +0 -0
  103. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_boolengine.py +0 -0
  104. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_clausification.py +0 -0
  105. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_cnf.py +0 -0
  106. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_empty_extclause.py +0 -0
  107. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_encode_pb_conditional.py +0 -0
  108. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_equals1.py +0 -0
  109. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_formula_parsing.py +0 -0
  110. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_formula_unique.py +0 -0
  111. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_idpool.py +0 -0
  112. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_integer.py +0 -0
  113. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_oom.py +0 -0
  114. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_process.py +0 -0
  115. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_propagate.py +0 -0
  116. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_unique_model.py +0 -0
  117. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_unique_mus.py +0 -0
  118. {python_sat-1.9.dev10 → python_sat-1.9.dev11}/tests/test_warmstart.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-sat
3
- Version: 1.9.dev10
3
+ Version: 1.9.dev11
4
4
  Summary: A Python library for prototyping with SAT oracles
5
5
  Home-page: https://github.com/pysathq/pysat
6
6
  Author: Alexey Ignatiev, Joao Marques-Silva, Antonio Morgado
@@ -10,7 +10,7 @@
10
10
 
11
11
  # current version
12
12
  #==============================================================================
13
- VERSION = (1, 9, 'dev', 10)
13
+ VERSION = (1, 9, 'dev', 11)
14
14
 
15
15
 
16
16
  # PEP440 Format
@@ -972,7 +972,7 @@ class Formula(object):
972
972
  return ('identity', type(obj), id(obj))
973
973
  return ('obj', type(obj), obj)
974
974
 
975
- def _formula_key(form):
975
+ def _formula_key_uncached(form):
976
976
  """
977
977
  Get a structural key without a formula's merge flag.
978
978
  """
@@ -1001,6 +1001,21 @@ class Formula(object):
1001
1001
  counts = collections.Counter(_formula_key(subform) for subform in form.subformulas)
1002
1002
  return (form.type, frozenset(counts.items()))
1003
1003
 
1004
+ def _formula_key(form):
1005
+ """
1006
+ Get a cached structural key for an immutable formula.
1007
+ """
1008
+
1009
+ if isinstance(form, Formula):
1010
+ key = getattr(form, '_key_cache', None)
1011
+ if key is None:
1012
+ key = _formula_key_uncached(form)
1013
+ form._key_cache = key
1014
+
1015
+ return key
1016
+
1017
+ return _formula_key_uncached(form)
1018
+
1004
1019
  def _merged_operands(operands, formula_type):
1005
1020
  """Flatten same-type operands for a merged connective."""
1006
1021
  result = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-sat
3
- Version: 1.9.dev10
3
+ Version: 1.9.dev11
4
4
  Summary: A Python library for prototyping with SAT oracles
5
5
  Home-page: https://github.com/pysathq/pysat
6
6
  Author: Alexey Ignatiev, Joao Marques-Silva, Antonio Morgado
File without changes
File without changes