Skip to content

Commit f6a5072

Browse files
Merge branch 'master' into mp
2 parents fa59df2 + 5b81247 commit f6a5072

File tree

124 files changed

+11824
-2187
lines changed

Some content is hidden

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

124 files changed

+11824
-2187
lines changed

.coveragerc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ branch = False
33
source = datajoint
44

55
[report]
6+
show_missing = True

.dockerignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
notebook
2+
build
3+
*.egg-info
4+
dist
5+
.vscode
6+
__pycache__

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: 'bug, awaiting-triage'
6+
assignees: ''
7+
8+
---
9+
10+
## Bug Report
11+
12+
### Description
13+
A clear and concise description of what is the overall operation that is intended to be performed that resulted in an error.
14+
15+
### Reproducibility
16+
Include:
17+
- OS (WIN | MACOS | Linux)
18+
- Python Version OR MATLAB Version
19+
- MySQL Version
20+
- MySQL Deployment Strategy (local-native | local-docker | remote)
21+
- DataJoint Version
22+
- Minimum number of steps to reliably reproduce the issue
23+
- Complete error stack as a result of evaluating the above steps
24+
25+
### Expected Behavior
26+
A clear and concise description of what you expected to happen.
27+
28+
### Screenshots
29+
If applicable, add screenshots to help explain your problem.
30+
31+
### Additional Research and Context
32+
Add any additional research or context that was conducted in creating this report.
33+
34+
For example:
35+
- Related GitHub issues and PR's either within this repository or in other relevant repositories.
36+
- Specific links to specific lines or a focus within source code.
37+
- Relevant summary of Maintainers development meetings, milestones, projects, etc.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for a new feature
4+
title: ''
5+
labels: 'enhancement, awaiting-triage'
6+
assignees: ''
7+
8+
---
9+
10+
## Feature Request
11+
12+
### Problem
13+
A clear and concise description how this idea has manifested and the context. Elaborate on the need for this feature and/or what could be improved. Ex. I'm always frustrated when [...]
14+
15+
### Requirements
16+
A clear and concise description of the requirements to satisfy the new feature. Detail what you expect from a successful implementation of the feature. Ex. When using this feature, it should [...]
17+
18+
### Justification
19+
Provide the key benefits in making this a supported feature. Ex. Adding support for this feature would ensure [...]
20+
21+
### Alternative Considerations
22+
Do you currently have a work-around for this? Provide any alternative solutions or features you've considered.
23+
24+
### Related Errors
25+
Add any errors as a direct result of not exposing this feature.
26+
27+
Please include steps to reproduce provided errors as follows:
28+
- OS (WIN | MACOS | Linux)
29+
- Python Version OR MATLAB Version
30+
- MySQL Version
31+
- MySQL Deployment Strategy (local-native | local-docker | remote)
32+
- DataJoint Version
33+
- Minimum number of steps to reliably reproduce the issue
34+
- Complete error stack as a result of evaluating the above steps
35+
36+
### Screenshots
37+
If applicable, add screenshots to help explain your feature.
38+
39+
### Additional Research and Context
40+
Add any additional research or context that was conducted in creating this feature request.
41+
42+
For example:
43+
- Related GitHub issues and PR's either within this repository or in other relevant repositories.
44+
- Specific links to specific line or focus within source code.
45+
- Relevant summary of Maintainers development meetings, milestones, projects, etc.
46+
- Any additional supplemental web references or links that would further justify this feature request.

.github/workflows/development.yaml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Development
2+
on:
3+
push:
4+
branches:
5+
- '**' # every branch
6+
- '!stage*' # exclude branches beginning with stage
7+
pull_request:
8+
branches:
9+
- '**' # every branch
10+
- '!stage*' # exclude branches beginning with stage
11+
jobs:
12+
test:
13+
if: github.event_name == 'push' || github.event_name == 'pull_request'
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
py_ver: ["3.8"]
18+
mysql_ver: ["8.0", "5.7"]
19+
include:
20+
- py_ver: "3.7"
21+
mysql_ver: "5.7"
22+
- py_ver: "3.6"
23+
mysql_ver: "5.7"
24+
steps:
25+
- uses: actions/checkout@v2
26+
- name: Set up Python ${{matrix.py_ver}}
27+
uses: actions/setup-python@v2
28+
with:
29+
python-version: ${{matrix.py_ver}}
30+
- name: Install dependencies
31+
run: |
32+
python -m pip install --upgrade pip
33+
pip install flake8
34+
- name: Run syntax tests
35+
run: flake8 datajoint --count --select=E9,F63,F7,F82 --show-source --statistics
36+
- name: Run primary tests
37+
env:
38+
UID: "1001"
39+
GID: "121"
40+
PY_VER: ${{matrix.py_ver}}
41+
MYSQL_VER: ${{matrix.mysql_ver}}
42+
ALPINE_VER: "3.10"
43+
MINIO_VER: RELEASE.2019-09-26T19-42-35Z
44+
COMPOSE_HTTP_TIMEOUT: "120"
45+
COVERALLS_SERVICE_NAME: travis-ci
46+
COVERALLS_REPO_TOKEN: fd0BoXG46TPReEem0uMy7BJO5j0w1MQiY
47+
run: docker-compose -f LNX-docker-compose.yml up --build --exit-code-from app
48+
- name: Run style tests
49+
run: |
50+
flake8 --ignore=E121,E123,E126,E226,E24,E704,W503,W504,E722,F401,W605 datajoint \
51+
--count --max-complexity=62 --max-line-length=127 --statistics

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,6 @@ docker-compose.yml
2323
notebook
2424
.vscode
2525
__main__.py
26-
jupyter_custom.js
26+
jupyter_custom.js
27+
apk_requirements.txt
28+
.eggs

.travis.yml

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

CHANGELOG.md

Lines changed: 77 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,75 @@
11
## Release notes
22

3+
### 0.13.3 -- TBD
4+
* Bugfix - Dependencies not properly loaded on populate. (#902) PR #919
5+
* Bugfix - Replace use of numpy aliases of built-in types with built-in type. (#938) PR #939
6+
7+
### 0.13.2 -- May 7, 2021
8+
* Update `setuptools_certificate` dependency to new name `otumat`
9+
* Bugfix - Explicit calls to `dj.Connection` throw error due to missing `host_input` (#895) PR #907
10+
* Bugfix - Correct count of deleted items. (#897) PR #912
11+
12+
### 0.13.1 -- Apr 16, 2021
13+
* Add `None` as an alias for `IS NULL` comparison in `dict` restrictions (#824) PR #893
14+
* Drop support for MySQL 5.6 since it has reached EOL PR #893
15+
* Bugfix - `schema.list_tables()` is not topologically sorted (#838) PR #893
16+
* Bugfix - Diagram part tables do not show proper class name (#882) PR #893
17+
* Bugfix - Error in complex restrictions (#892) PR #893
18+
* Bugfix - WHERE and GROUP BY clases are dropped on joins with aggregation (#898, #899) PR #893
19+
20+
### 0.13.0 -- Mar 24, 2021
21+
* Re-implement query transpilation into SQL, fixing issues (#386, #449, #450, #484, #558). PR #754
22+
* Re-implement cascading deletes for better performance. PR #839
23+
* Add support for deferred schema activation to allow for greater modularity. (#834) PR #839
24+
* Add query caching mechanism for offline development (#550) PR #839
25+
* Add table method `.update1` to update a row in the table with new values (#867) PR #763, #889
26+
* Python datatypes are now enabled by default in blobs (#761). PR #859
27+
* Added permissive join and restriction operators `@` and `^` (#785) PR #754
28+
* Support DataJoint datatype and connection plugins (#715, #729) PR 730, #735
29+
* Add `dj.key_hash` alias to `dj.hash.key_hash` (#804) PR #862
30+
* Default enable_python_native_blobs to True
31+
* Bugfix - Regression error on joins with same attribute name (#857) PR #878
32+
* Bugfix - Error when `fetch1('KEY')` when `dj.config['fetch_format']='frame'` set (#876) PR #880, #878
33+
* Bugfix - Error when cascading deletes in tables with many, complex keys (#883, #886) PR #839
34+
* Add deprecation warning for `_update`. PR #889
35+
* Add `purge_query_cache` utility. PR #889
36+
* Add tests for query caching and permissive join and restriction. PR #889
37+
* Drop support for Python 3.5 (#829) PR #861
38+
39+
### 0.12.9 -- Mar 12, 2021
40+
* Fix bug with fetch1 with `dj.config['fetch_format']="frame"`. (#876) PR #880
41+
42+
### 0.12.8 -- Jan 12, 2021
43+
* table.children, .parents, .descendents, and ancestors can return queryable objects. PR #833
44+
* Load dependencies before querying dependencies. (#179) PR #833
45+
* Fix display of part tables in `schema.save`. (#821) PR #833
46+
* Add `schema.list_tables`. (#838) PR #844
47+
* Fix minio new version regression. PR #847
48+
* Add more S3 logging for debugging. (#831) PR #832
49+
* Convert testing framework from TravisCI to GitHub Actions (#841) PR #840
50+
51+
### 0.12.7 -- Oct 27, 2020
52+
* Fix case sensitivity issues to adapt to MySQL 8+. PR #819
53+
* Fix pymysql regression bug (#814) PR #816
54+
* Adapted attribute types now have dtype=object in all recarray results. PR #811
55+
56+
### 0.12.6 -- May 15, 2020
57+
* Add `order_by` to `dj.kill` (#668, #779) PR #775, #783
58+
* Add explicit S3 bucket and file storage location existence checks (#748) PR #781
59+
* Modify `_update` to allow nullable updates for strings/date (#664) PR #760
60+
* Avoid logging events on auxiliary tables (#737) PR #753
61+
* Add `kill_quick` and expand display to include host (#740) PR #741
62+
* Bugfix - pandas insert fails due to additional `index` field (#666) PR #776
63+
* Bugfix - `delete_external_files=True` does not remove from S3 (#686) PR #781
64+
* Bugfix - pandas fetch throws error when `fetch_format='frame'` PR #774
65+
66+
### 0.12.5 -- Feb 24, 2020
67+
* Rename module `dj.schema` into `dj.schemas`. `dj.schema` remains an alias for class `dj.Schema`. (#731) PR #732
68+
* `dj.create_virtual_module` is now called `dj.VirtualModule` (#731) PR #732
69+
* Bugfix - SSL `KeyError` on failed connection (#716) PR #725
70+
* Bugfix - Unable to run unit tests using nosetests (#723) PR #724
71+
* Bugfix - `suppress_errors` does not suppress loss of connection error (#720) PR #721
72+
373
### 0.12.4 -- Jan 14, 2020
474
* Support for simple scalar datatypes in blobs (#690) PR #709
575
* Add support for the `serial` data type in declarations: alias for `bigint unsigned auto_increment` PR #713
@@ -73,9 +143,9 @@
73143
* Bugfix in restriction of the form (A & B) * B (#463)
74144
* Improved error messages (#466)
75145

76-
### 0.10.0 -- Jan 10, 2018
146+
### 0.10.0 -- Jan 10, 2018
77147
* Deletes are more efficient (#424)
78-
* ERD shows table definition on tooltip hover in Jupyter (#422)
148+
* ERD shows table definition on tooltip hover in Jupyter (#422)
79149
* S3 external storage
80150
* Garbage collection for external sorage
81151
* Most operators and methods of tables can be invoked as class methods rather than instance methods (#407)
@@ -89,7 +159,7 @@
89159
* Implement union operator +
90160
* Implement file-based external storage
91161

92-
### 0.8.0 -- Jul 26, 2017
162+
### 0.8.0 -- Jul 26, 2017
93163
Documentation and tutorials available at https://docs.datajoint.io and https://tutorials.datajoint.io
94164
* improved the ERD graphics and features using the graphviz libraries (#207, #333)
95165
* improved password handling logic (#322, #321)
@@ -108,11 +178,11 @@ Documentation and tutorials available at https://docs.datajoint.io and https://t
108178
* Added `dj.create_virtual_module`
109179

110180
### 0.4.10 (#286) -- Feb 6, 2017
111-
* Removed Vagrant and Readthedocs support
181+
* Removed Vagrant and Readthedocs support
112182
* Explicit saving of configuration (issue #284)
113183

114184
### 0.4.9 (#285) -- Feb 2, 2017
115-
* Fixed setup.py for pip install
185+
* Fixed setup.py for pip install
116186

117187
### 0.4.7 (#281) -- Jan 24, 2017
118188
* Fixed issues related to order of attributes in projection.
@@ -141,10 +211,10 @@ Documentation and tutorials available at https://docs.datajoint.io and https://t
141211

142212
### 0.3.8 -- Aug 2, 2016
143213
* added the `_update` method in `base_relation`. It allows updating values in existing tuples.
144-
* bugfix in reading values of type double. Previously it was cast as float32.
214+
* bugfix in reading values of type double. Previously it was cast as float32.
145215

146216
### 0.3.7 -- Jul 31, 2016
147-
* added parameter `ignore_extra_fields` in `insert`
217+
* added parameter `ignore_extra_fields` in `insert`
148218
* `insert(..., skip_duplicates=True)` now relies on `SELECT IGNORE`. Previously it explicitly checked if tuple already exists.
149219
* table previews now include blob attributes displaying the string <BLOB>
150220

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
FROM datajoint/pydev
22

3-
ADD . /src
4-
RUN pip install /src && \
5-
rm -rf /src
3+
COPY --chown=dja . /tmp/src
4+
RUN pip install --user /tmp/src && \
5+
rm -rf /tmp/src

0 commit comments

Comments
 (0)