Skip to content

Commit 500edcf

Browse files
Merge pull request #2 from sassoftware/mlflow
Mlflow
2 parents fa2aa24 + 384fc92 commit 500edcf

File tree

200 files changed

+48069
-32755
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

200 files changed

+48069
-32755
lines changed

.deepsource.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ name = "python"
1414
enabled = true
1515

1616
[analyzers.meta]
17-
runtime_version = "2.x.x"
17+
runtime_version = "3.x.x"
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
name: "Build"
2+
on: [push, workflow_dispatch]
3+
jobs:
4+
codeanalysis:
5+
name: "Code Quality"
6+
runs-on: ubuntu-latest
7+
8+
steps:
9+
- name: Checkout repository
10+
uses: actions/checkout@v2
11+
12+
- name: Lint
13+
uses: ricardochaves/[email protected]
14+
continue-on-error: true
15+
with:
16+
python-root-list: "src"
17+
18+
test:
19+
name: "Test"
20+
runs-on: ${{ matrix.os-version }}
21+
env:
22+
LANG: en_US.UTF-8
23+
strategy:
24+
matrix:
25+
python-version: [3.5, 3.6, 3.7, 3.8, 3.9]
26+
os-version: [ubuntu-latest, windows-latest, macos-latest]
27+
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@v2
31+
32+
- name: Set up Python ${{ matrix.python-version }}
33+
uses: actions/setup-python@v2
34+
with:
35+
python-version: ${{ matrix.python-version }}
36+
37+
- name: Install dependencies (Ubuntu)
38+
if: matrix.os-version == 'ubuntu-latest'
39+
run: |
40+
sudo apt-get update
41+
sudo apt-get install build-essential libkrb5-dev
42+
43+
- name: Install dependencies (Common)
44+
run: |
45+
# Setup tox
46+
pip install --upgrade pip
47+
pip install tox tox-gh-actions codecov
48+
49+
- name: Run Tests
50+
run: |
51+
tox
52+
codecov
53+
54+
55+
gh-pages:
56+
name: "Build Documentation"
57+
runs-on: ubuntu-latest
58+
needs: test
59+
if: startsWith(github.ref, 'refs/tags/') # run only on tagged commits
60+
61+
steps:
62+
- name: Checkout repository
63+
uses: actions/checkout@v2
64+
65+
- name: Set up Python
66+
uses: actions/setup-python@v2
67+
with:
68+
python-version: 3.6
69+
70+
- name: Setup environment
71+
run: |
72+
mv doc docs
73+
sudo apt-get install build-essential
74+
pip install sphinx six pyyaml
75+
76+
- name: Check documentation
77+
uses: ammaraskar/sphinx-problem-matcher@master
78+
79+
- name: Build documentation
80+
run: sphinx-build -Ean -b html -j auto -D todo_include_todos=0 ./docs ./docs/_build/html
81+
82+
- name: Archive artifacts
83+
uses: actions/upload-artifact@v2
84+
with:
85+
name: html-docs
86+
path: ./docs/_build/html
87+
88+
build:
89+
name: "Build Package"
90+
runs-on: ubuntu-latest
91+
needs: test
92+
if: startsWith(github.ref, 'refs/tags/') # run only on tagged commits
93+
94+
steps:
95+
- name: Checkout repository
96+
uses: actions/checkout@v2
97+
98+
- name: Setup Python
99+
uses: actions/setup-python@v2
100+
101+
- name: Install dependencies
102+
run: |
103+
pip install --upgrade pip
104+
pip install setuptools wheel twine
105+
106+
- name: Build Package
107+
run: |
108+
python setup.py sdist bdist_wheel
109+
110+
- name: Extract Changes
111+
shell: python
112+
run: |
113+
import os, re
114+
tag_name = os.environ['GITHUB_REF'].replace('refs/tags/', '')
115+
changes = ''
116+
with open('CHANGELOG.md') as f:
117+
lines = f.read()
118+
match = re.search('%s [()\d\-\s]*' % tag_name, lines)
119+
if match:
120+
lines = lines[match.end():]
121+
changes = re.split('-----+', lines)[0].split('\n')
122+
changes = '\n'.join(changes[:-2])
123+
with open('release_notes.md', 'w') as f:
124+
f.write(changes)
125+
126+
- name: Archive distribution artifacts
127+
# Archive distribution files for use by auto (or manual) PyPI upload
128+
uses: actions/upload-artifact@v2
129+
with:
130+
name: pypi-dist
131+
path: ./dist
132+
133+
- name: Archive changelog artifacts
134+
uses: actions/upload-artifact@v2
135+
with:
136+
name: release_notes
137+
path: release_notes.md
138+
139+
140+
publish:
141+
name: "Publish"
142+
runs-on: ubuntu-latest
143+
needs: [gh-pages, build]
144+
steps:
145+
146+
- name: Download documentation
147+
uses: actions/download-artifact@v2
148+
with:
149+
name: html-docs
150+
path: ./html-docs
151+
152+
- name: Download release
153+
uses: actions/download-artifact@v2
154+
with:
155+
name: pypi-dist
156+
path: ./dist
157+
158+
- name: Download release notes
159+
uses: actions/download-artifact@v2
160+
with:
161+
name: release_notes
162+
163+
- name: Zip Documentation
164+
run: zip -r documentation.zip ./html-docs
165+
166+
- name: Display structure of downloaded files
167+
run: ls -R
168+
169+
- name: Create Release
170+
id: create_release
171+
uses: softprops/action-gh-release@v1
172+
with:
173+
draft: true
174+
body_path: release_notes.md
175+
body: ""
176+
files: documentation.zip
177+
178+
- name: Deploy documentation
179+
uses: peaceiris/actions-gh-pages@v3
180+
with:
181+
github_token: ${{ secrets.GITHUB_TOKEN }}
182+
publish_dir: ./html-docs
183+
184+
- name: Publish to PyPI
185+
uses: pypa/gh-action-pypi-publish@release/v1
186+
with:
187+
user: __token__
188+
password: ${{ secrets.PYPI_API_TOKEN }}
189+
verbose: true
190+
191+
- name: Publish release
192+
uses: StuYarrow/publish-release@v1
193+
env:
194+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
195+
with:
196+
id: ${{ steps.create_release.outputs.id }}
197+

.github/workflows/codeql-analysis.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: "Security Scan"
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
# The branches below must be a subset of the branches above
8+
branches: [ master ]
9+
schedule:
10+
- cron: '43 20 * * 4'
11+
12+
jobs:
13+
analyze:
14+
name: Analyze
15+
runs-on: ubuntu-latest
16+
17+
permissions:
18+
# Require to update security info on GH repo
19+
security-events: write
20+
21+
strategy:
22+
fail-fast: false
23+
matrix:
24+
language: [ 'python' ]
25+
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v2
29+
30+
# Initializes the CodeQL tools for scanning.
31+
- name: Initialize CodeQL
32+
uses: github/codeql-action/init@v1
33+
with:
34+
languages: python
35+
36+
- name: Perform CodeQL Analysis
37+
uses: github/codeql-action/analyze@v1

.travis.yml

Lines changed: 0 additions & 95 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,53 @@
11
Unreleased
22
----------
3+
-
4+
5+
v1.6.3 (2021-09-23)
6+
-------------------
7+
**Bugfixes**
8+
- Fix an issue where `pzmm.ZipModel.zipFiles()` threw an error on Python 3.6.1 and earlier.
9+
10+
v1.6.2 (2021-09-09)
11+
-------------------
12+
**Bugfixes**
13+
- Fixed an issue with `register_model()` where random forest, gradient boosting, and SVM regression models with
14+
nominal inputs where incorrectly treated as classification models.
15+
16+
v1.6.1 (2021-09-01)
17+
-------------------
18+
**Improvements**
19+
- `model_repository.add_model_content()` will now overwrite existing files instead of failing.
20+
21+
**Bugfixes**
22+
- `PagedList.__repr__()` no longer appears to be an empty list.
23+
24+
v1.6.0 (2021-06-29)
25+
-------------------
26+
**Improvements**
27+
- `Session` now supports authorization using OAuth2 tokens. Use the `token=` parameter in the constructor when
28+
an existing access token token is known. Alternatively, omitting the `username=` and `password=` parameters
29+
will now prompt the user for an auth code.
30+
31+
**Changes**
32+
- `current_session` now stores & returns the *most recently created* session, not the first created session. This
33+
was done to alleviate quirks where an old, expired session is implicitly used instead of a newly-created session.
34+
- Removed deprecated `raw=` parameter from `sasctl.core.request()`.
35+
- Dropped support for Python 2.
36+
37+
v1.5.9 (2021-06-09)
38+
-------------------
39+
**Bugfixes**
40+
- Fixed an issue that caused score code generation by `pzmm` module to fail with Viya 3.5.
41+
42+
v1.5.8 (2021-05-18)
43+
-------------------
344
**Bugfixes**
445
- SSL warnings no longer repeatedly raised when `verify_ssl=False` but `CAS_CLIENT_SSL_CA_LIST` is specified.
46+
- `model_repository.delete_model_contents()` no longer fails when only one file is found.
547

648
**Improvements**
749
- All `delete_*()` service methods return `None` instead of empty string.
50+
- All `get_*()` service methods issue a warning if multiple items are found when retrieving by name.
851

952
v1.5.7 (2021-05-04)
1053
-------------------

0 commit comments

Comments
 (0)