MilesCranmer commited on
Commit
d2c9c27
2 Parent(s): f5811bc 9fd88bc

Merge pull request #497 from MilesCranmer/fix-older-python

Browse files

Install `typing_extensions` for compatibility with Python 3.7

.github/workflows/CI.yml CHANGED
@@ -29,9 +29,15 @@ jobs:
29
  shell: bash
30
  strategy:
31
  matrix:
32
- julia-version: ['1.9']
33
- python-version: ['3.10']
34
  os: [ubuntu-latest]
 
 
 
 
 
 
35
 
36
  steps:
37
  - uses: actions/checkout@v3
@@ -63,18 +69,22 @@ jobs:
63
  coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test cli
64
  - name: "Install JAX"
65
  run: pip install jax jaxlib # (optional import)
 
66
  - name: "Run JAX tests"
67
  run: coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test jax
 
68
  - name: "Install Torch"
69
  run: pip install torch # (optional import)
 
70
  - name: "Run Torch tests"
71
  run: coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test torch
 
72
  - name: "Run custom env tests"
73
  run: coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test env
74
  - name: "Coveralls"
75
  env:
76
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77
- COVERALLS_FLAG_NAME: test-${{ matrix.test-name }}
78
  COVERALLS_PARALLEL: true
79
  run: coveralls --service=github
80
 
@@ -94,7 +104,7 @@ jobs:
94
  shell: bash -l {0}
95
  strategy:
96
  matrix:
97
- python-version: ['3.9']
98
  os: ['ubuntu-latest']
99
 
100
  steps:
@@ -152,7 +162,10 @@ jobs:
152
  shell: bash -l {0}
153
  strategy:
154
  matrix:
155
- python-version: ['3.10']
 
 
 
156
 
157
  steps:
158
  - uses: actions/checkout@v3
@@ -164,8 +177,15 @@ jobs:
164
  - name: "Install PySR and all dependencies"
165
  run: |
166
  python -m pip install --upgrade pip
167
- pip install -r requirements.txt
168
- pip install mypy jax jaxlib torch
169
- python setup.py install
 
 
 
170
  - name: "Run mypy"
171
- run: mypy --install-types --non-interactive pysr
 
 
 
 
 
29
  shell: bash
30
  strategy:
31
  matrix:
32
+ julia-version: ['1']
33
+ python-version: ['3.11']
34
  os: [ubuntu-latest]
35
+ test-id: [main]
36
+ include:
37
+ - julia-version: '1.6'
38
+ python-version: '3.7'
39
+ os: ubuntu-latest
40
+ test-id: include
41
 
42
  steps:
43
  - uses: actions/checkout@v3
 
69
  coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test cli
70
  - name: "Install JAX"
71
  run: pip install jax jaxlib # (optional import)
72
+ if: ${{ matrix.test-id == 'main' }}
73
  - name: "Run JAX tests"
74
  run: coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test jax
75
+ if: ${{ matrix.test-id == 'main' }}
76
  - name: "Install Torch"
77
  run: pip install torch # (optional import)
78
+ if: ${{ matrix.test-id == 'main' }}
79
  - name: "Run Torch tests"
80
  run: coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test torch
81
+ if: ${{ matrix.test-id == 'main' }}
82
  - name: "Run custom env tests"
83
  run: coverage run --append --source=pysr --omit='*/test/*,*/feynman_problems.py' -m pysr.test env
84
  - name: "Coveralls"
85
  env:
86
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
87
+ COVERALLS_FLAG_NAME: test-${{ matrix.julia-version }}-${{ matrix.python-version }}
88
  COVERALLS_PARALLEL: true
89
  run: coveralls --service=github
90
 
 
104
  shell: bash -l {0}
105
  strategy:
106
  matrix:
107
+ python-version: ['3.11']
108
  os: ['ubuntu-latest']
109
 
110
  steps:
 
162
  shell: bash -l {0}
163
  strategy:
164
  matrix:
165
+ python-version:
166
+ - '3.11'
167
+ - '3.7'
168
+ os: ['ubuntu-latest']
169
 
170
  steps:
171
  - uses: actions/checkout@v3
 
177
  - name: "Install PySR and all dependencies"
178
  run: |
179
  python -m pip install --upgrade pip
180
+ python -m pip install -r requirements.txt
181
+ python -m pip install mypy
182
+ python -m pip install .
183
+ - name: "Install additional dependencies"
184
+ run: python -m pip install jax jaxlib torch
185
+ if: ${{ matrix.python-version != '3.7' }}
186
  - name: "Run mypy"
187
+ run: python -m mypy --install-types --non-interactive pysr
188
+ if: ${{ matrix.python-version != '3.7' }}
189
+ - name: "Run compatible mypy"
190
+ run: python -m mypy --ignore-missing-imports pysr
191
+ if: ${{ matrix.python-version == '3.7' }}
.github/workflows/CI_Windows.yml CHANGED
@@ -29,8 +29,8 @@ jobs:
29
  shell: bash
30
  strategy:
31
  matrix:
32
- julia-version: ['1.9']
33
- python-version: ['3.10']
34
  os: [windows-latest]
35
 
36
  steps:
 
29
  shell: bash
30
  strategy:
31
  matrix:
32
+ julia-version: ['1']
33
+ python-version: ['3.11']
34
  os: [windows-latest]
35
 
36
  steps:
.github/workflows/CI_docker_large_nightly.yml CHANGED
@@ -18,7 +18,7 @@ jobs:
18
  strategy:
19
  fail-fast: false
20
  matrix:
21
- julia-version: ['1.6', '1.9']
22
  python-version: ['3.10']
23
  os: [ubuntu-latest]
24
  arch: ['linux/amd64', 'linux/arm64']
 
18
  strategy:
19
  fail-fast: false
20
  matrix:
21
+ julia-version: ['1.6', '1']
22
  python-version: ['3.10']
23
  os: [ubuntu-latest]
24
  arch: ['linux/amd64', 'linux/arm64']
.github/workflows/CI_mac.yml CHANGED
@@ -29,8 +29,8 @@ jobs:
29
  shell: bash
30
  strategy:
31
  matrix:
32
- julia-version: ['1.9']
33
- python-version: ['3.10']
34
  os: [macos-latest]
35
 
36
  steps:
 
29
  shell: bash
30
  strategy:
31
  matrix:
32
+ julia-version: ['1']
33
+ python-version: ['3.11']
34
  os: [macos-latest]
35
 
36
  steps:
.github/workflows/docker_deploy.yml CHANGED
@@ -18,8 +18,8 @@ jobs:
18
  matrix:
19
  os: [ubuntu-latest]
20
  arch: [linux/amd64]
21
- python-version: [3.10.8]
22
- julia-version: [1.8.2]
23
  steps:
24
  - name: Checkout
25
  uses: actions/checkout@v3
 
18
  matrix:
19
  os: [ubuntu-latest]
20
  arch: [linux/amd64]
21
+ python-version: [3.11.6]
22
+ julia-version: [1.9.4]
23
  steps:
24
  - name: Checkout
25
  uses: actions/checkout@v3
Dockerfile CHANGED
@@ -1,8 +1,8 @@
1
  # This builds a dockerfile containing a working copy of PySR
2
  # with all pre-requisites installed.
3
 
4
- ARG JLVERSION=1.9.1
5
- ARG PYVERSION=3.10.11
6
  ARG BASE_IMAGE=bullseye
7
 
8
  FROM julia:${JLVERSION}-${BASE_IMAGE} AS jl
 
1
  # This builds a dockerfile containing a working copy of PySR
2
  # with all pre-requisites installed.
3
 
4
+ ARG JLVERSION=1.9.4
5
+ ARG PYVERSION=3.11.6
6
  ARG BASE_IMAGE=bullseye
7
 
8
  FROM julia:${JLVERSION}-${BASE_IMAGE} AS jl
pysr/export_latex.py CHANGED
@@ -23,7 +23,7 @@ def sympy2latex(expr, prec=3, full_prec=True, **settings) -> str:
23
  """Convert sympy expression to LaTeX with custom precision."""
24
  settings["full_prec"] = full_prec
25
  printer = PreciseLatexPrinter(settings=settings, prec=prec)
26
- return printer.doprint(expr)
27
 
28
 
29
  def generate_table_environment(
 
23
  """Convert sympy expression to LaTeX with custom precision."""
24
  settings["full_prec"] = full_prec
25
  printer = PreciseLatexPrinter(settings=settings, prec=prec)
26
+ return str(printer.doprint(expr))
27
 
28
 
29
  def generate_table_environment(
pysr/sr.py CHANGED
@@ -11,7 +11,12 @@ from datetime import datetime
11
  from io import StringIO
12
  from multiprocessing import cpu_count
13
  from pathlib import Path
14
- from typing import Callable, Dict, List, Literal, Optional, Tuple, Union
 
 
 
 
 
15
 
16
  import numpy as np
17
  import pandas as pd
 
11
  from io import StringIO
12
  from multiprocessing import cpu_count
13
  from pathlib import Path
14
+ from typing import Callable, Dict, List, Optional, Tuple, Union
15
+
16
+ if sys.version_info >= (3, 8):
17
+ from typing import Literal
18
+ else:
19
+ from typing_extensions import Literal
20
 
21
  import numpy as np
22
  import pandas as pd
requirements.txt CHANGED
@@ -5,3 +5,4 @@ scikit_learn>=1.0.0
5
  julia>=0.6.0
6
  click>=7.0.0
7
  setuptools>=50.0.0
 
 
5
  julia>=0.6.0
6
  click>=7.0.0
7
  setuptools>=50.0.0
8
+ typing_extensions>=4.0.0,<5.0.0; python_version < "3.8"
setup.py CHANGED
@@ -26,5 +26,5 @@ setuptools.setup(
26
  "Programming Language :: Python :: 3",
27
  "Operating System :: OS Independent",
28
  ],
29
- python_requires=">=3.8",
30
  )
 
26
  "Programming Language :: Python :: 3",
27
  "Operating System :: OS Independent",
28
  ],
29
+ python_requires=">=3.7",
30
  )