Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
510 commits
Select commit Hold shift + click to select a range
36764ac
feat: Working package setup
BMatischen01 Aug 1, 2025
7e647f7
refactor: Move extract_project_id to exporter folder
BMatischen01 Aug 1, 2025
9f95d28
fix: Correct docker setup
BMatischen01 Aug 1, 2025
7002c5a
chore: Rename exporter to osfexport
BMatischen01 Aug 1, 2025
6482d8e
chore: Update version, README for TestPyPI install
BMatischen01 Aug 1, 2025
80de703
refactor: Put everything under one module
BMatischen01 Aug 1, 2025
4222ae4
feat: CLI commands working as well as imports
BMatischen01 Aug 1, 2025
8c1246e
Merge pull request #59 from CenterForOpenScience/35-make-this-tool-wo…
BMatischen01 Aug 1, 2025
78a8e3f
tests: Setup automated tests
BMatischen01 Aug 7, 2025
f129db7
fix: Update file name
BMatischen01 Aug 7, 2025
130600d
fix: Import export code from src folder
BMatischen01 Aug 7, 2025
a874925
tests: Remove dependence on PAT
BMatischen01 Aug 7, 2025
22363b0
tests: export-projects should work if using mocks and no PAT given
BMatischen01 Aug 7, 2025
e2b047a
fix: Accept no PAT in export-projects if using mocks
BMatischen01 Aug 7, 2025
62ca571
tests: Refactor prompt_pat tests for compatibility with workflow
BMatischen01 Aug 12, 2025
e2fdc01
tests: Remove max-complexity arg
BMatischen01 Aug 12, 2025
6e34ad2
style: Fix linting errors for workflow
BMatischen01 Aug 12, 2025
616bffb
Revert "style: Fix linting errors for workflow"
BMatischen01 Aug 12, 2025
cd82c94
style: Fix linting errors
BMatischen01 Aug 12, 2025
d4754a7
tests: Remove test, add filters to reduce requests sent by API tests
BMatischen01 Aug 12, 2025
a859a3d
tests: Reorder API tests
BMatischen01 Aug 12, 2025
3ed0f2c
tests: Add separate job for API tests
BMatischen01 Aug 12, 2025
585aecb
Revert "tests: Add separate job for API tests"
BMatischen01 Aug 12, 2025
2e32819
tests: Run API tests last in workflow
BMatischen01 Aug 12, 2025
974a859
tests: Stop API tests on first fail
BMatischen01 Aug 12, 2025
ac71b3a
tests: remove redundant explore_file_tree test
BMatischen01 Aug 12, 2025
45d5004
tests: Remove second install step in test.yaml
BMatischen01 Aug 12, 2025
f435659
Revert "tests: Remove second install step in test.yaml"
BMatischen01 Aug 12, 2025
25980df
tests: Merge install steps into one
BMatischen01 Aug 12, 2025
af15c30
refactor: Set PDF font as global in exporter.py
BMatischen01 Aug 13, 2025
4030898
tests: Add Unicode symbols to use in PDF and improve table checks
BMatischen01 Aug 13, 2025
7af617f
feat: Use DejaVueSans font
BMatischen01 Aug 13, 2025
b8d8aa4
refactor: Move font files to dedicated folder
BMatischen01 Aug 13, 2025
d9542b1
style: Add padding between PDF lines
BMatischen01 Aug 13, 2025
3c48a51
tests: Remove docstrings and rename for clarity
BMatischen01 Aug 13, 2025
b94f14d
refactor: Set PDF styling as variables or constants
BMatischen01 Aug 13, 2025
fa5bcfe
style: Reduce line lengths, spaces in files_table string
BMatischen01 Aug 13, 2025
67f94df
tests: Plan function for handling JSON pagination
BMatischen01 Aug 14, 2025
8153555
feat: Implement paginate_json_result
BMatischen01 Aug 14, 2025
f2bac45
tests: Allow passing args and kwargs to call_api and action
BMatischen01 Aug 14, 2025
cb25396
feat: Pass kwargs to paginate_json_results
BMatischen01 Aug 14, 2025
dfddaf8
Merge pull request #67 from CenterForOpenScience/17-setup-automated-w…
BMatischen01 Aug 14, 2025
e39ba83
Merge branch 'development' into 56-support-non-latin-characters-in-pdfs
BMatischen01 Aug 14, 2025
b2af18c
chore: Remove extra line
BMatischen01 Aug 14, 2025
6221bd7
Merge pull request #70 from CenterForOpenScience/56-support-non-latin…
BMatischen01 Aug 14, 2025
d8a3d6a
Merge branch 'development' into 23-handle-paginated-json-for-all-fiel…
BMatischen01 Aug 14, 2025
494dd0c
refactor: Separate getting nodes from parsing nodes in get_project_data
BMatischen01 Aug 14, 2025
b5824a1
refactor: Use dispatch table to handle field processing
BMatischen01 Aug 15, 2025
53ea794
tests: Paginate nodes, child nodes for testing
BMatischen01 Aug 15, 2025
28cd131
feat: Loop through pagination for components
BMatischen01 Aug 15, 2025
480acbe
tests: Integration test for paginated node search
BMatischen01 Aug 15, 2025
10c3fc3
feat: Loop through paginated node JSON
BMatischen01 Aug 15, 2025
4b0a08f
fix: Fix import error in cli.py
BMatischen01 Aug 15, 2025
f5cf005
tests: Check root node indexes account for pagination
BMatischen01 Aug 15, 2025
55735f0
fix: Convert paginated root node indexes to global ones
BMatischen01 Aug 18, 2025
ef6cf4c
fix: Add checks for missing JSON fields when paginating, getting license
BMatischen01 Aug 18, 2025
e29d896
docs: Update comments, docstrings in exporter.py
BMatischen01 Aug 18, 2025
99ce6d5
refactor: Move PDF gen code to formatter.py
BMatischen01 Aug 18, 2025
c573475
fix: Handle AttributeError when mocking call_api in tests
BMatischen01 Aug 18, 2025
97d52df
fix: Stop infinite looping for single projects
BMatischen01 Aug 18, 2025
617bf3e
chore: Fix linting errors
BMatischen01 Aug 18, 2025
ef7453d
refactor: Reorder and unembed functions in exporter.py
BMatischen01 Aug 18, 2025
8f0a2db
fix: Fix workflow import error in cli.py
BMatischen01 Aug 18, 2025
4aaf948
chore: Remove leftover debug statements
BMatischen01 Aug 19, 2025
0585727
Merge pull request #72 from CenterForOpenScience/23-handle-paginated-…
BMatischen01 Aug 19, 2025
273170d
fix: Fix running tests manually
BMatischen01 Aug 19, 2025
febbf81
fix: Fix imports
BMatischen01 Aug 19, 2025
5a015bf
fix: Ensure text wrapping for text
BMatischen01 Aug 19, 2025
7aada79
style: Reformat PDF headers and text
BMatischen01 Aug 19, 2025
2cde5c2
tests: Account for new formatting in PDF tests
BMatischen01 Aug 19, 2025
792b743
style: Switch order of funders fields
BMatischen01 Aug 19, 2025
aab3ddd
fix: Fix linting errors
BMatischen01 Aug 19, 2025
7c7440d
refactor: Make text cell width a variable
BMatischen01 Aug 19, 2025
803b923
tests: Install this repo as dependency in test.yaml
BMatischen01 Aug 20, 2025
9fd1aa4
refactor: Fix imports and separate formatter tests from exporter tests
BMatischen01 Aug 20, 2025
4f1a538
refactor: Make write_list_section, write_project_body into private me…
BMatischen01 Aug 20, 2025
6d25c31
tests: Start test for checking image sizing
BMatischen01 Aug 20, 2025
42ba1e5
refactor: Use private methods for wiki, move global vars to class
BMatischen01 Aug 21, 2025
4ef0a47
tests: Expect class to render image from markdown with a specific size
BMatischen01 Aug 21, 2025
346a7c5
feat: Set image sizes using HTMLCapImageSizeRenderer
BMatischen01 Aug 21, 2025
7ae718e
tests: Don't resize 300x300 image based on maximums used
BMatischen01 Aug 22, 2025
5d549a4
feat: Get image size and apply conditional resizing in HTMLImageSizeC…
BMatischen01 Aug 22, 2025
2001338
refactor: Start wiki section with new page
BMatischen01 Aug 22, 2025
012b3ec
style: Fix linter errors
BMatischen01 Aug 22, 2025
c64df84
fix: Install export tool as editable dependency
BMatischen01 Aug 22, 2025
be6e823
fix: Fix imports and test workflow
BMatischen01 Aug 22, 2025
cae6047
docs: Update pyproject.toml
BMatischen01 Aug 22, 2025
2f917ca
fix: Change base command name for using CLI to osfget
BMatischen01 Aug 22, 2025
9c2fb6a
docs: Move TestPyPI install to separate section in README
BMatischen01 Aug 22, 2025
5d5d1ae
fix: Fix typo in email
BMatischen01 Aug 22, 2025
356ef29
Merge pull request #75 from CenterForOpenScience/61-stop-very-long-te…
BMatischen01 Aug 22, 2025
6671688
Merge branch 'development' into 64-make-exported-wiki-images-fit-to-page
BMatischen01 Aug 22, 2025
e75ed0a
fix: Fix errors found by linter
BMatischen01 Aug 22, 2025
08f6794
fix: Remove duplicate imports
BMatischen01 Aug 22, 2025
49c130d
fix: Remerge wiki page loop from other branch
BMatischen01 Aug 22, 2025
8cf3851
fix: Adjust line padding, URL used in TestFormatter test
BMatischen01 Aug 22, 2025
0ccf5cc
Merge pull request #77 from CenterForOpenScience/64-make-exported-wik…
BMatischen01 Aug 22, 2025
1091a2b
Merge branch 'development' into 65-update-metadata
BMatischen01 Aug 22, 2025
f5f04f9
chore: Remove unused imports in __init__.py
BMatischen01 Aug 22, 2025
27368de
Merge pull request #78 from CenterForOpenScience/65-update-metadata
BMatischen01 Aug 22, 2025
4590d18
chore: Try to fix author fields on TestPyPI
BMatischen01 Aug 22, 2025
d943cc1
Revert "chore: Try to fix author fields on TestPyPI"
BMatischen01 Aug 22, 2025
85536bf
fix: Pass PAT to methods in get_project_data as expected
BMatischen01 Aug 22, 2025
fc3ca19
Merge pull request #79 from CenterForOpenScience/hotfix-pass-pat-to-m…
BMatischen01 Aug 22, 2025
d369a32
chore: Bump version to 0.1.1
BMatischen01 Aug 22, 2025
5257ff3
tests: Add test for retrieving components individually
BMatischen01 Aug 26, 2025
30c0322
tests: Move formatter image test to TestAPI class
BMatischen01 Aug 26, 2025
7b4a384
tests: Add JSON for testing getting single components
BMatischen01 Aug 26, 2025
2b59277
tests: Assert correct number of root nodes
BMatischen01 Aug 26, 2025
f137809
fix: Add first project specified by ID as root node
BMatischen01 Aug 26, 2025
5e60577
tests: Add test for optional inclusion of parent link
BMatischen01 Aug 26, 2025
5d4e8a7
feat: Add label for parent if PDF is for components
BMatischen01 Aug 26, 2025
aefdf0b
style: Fix linting errors
BMatischen01 Aug 26, 2025
d0f993a
tests: Comment out problematic image test
BMatischen01 Aug 26, 2025
8596f9c
feat: Add User-Agent header to API calls
BMatischen01 Aug 26, 2025
c5068b6
docs: Add link to issue to fix test
BMatischen01 Aug 26, 2025
9241918
Merge pull request #83 from CenterForOpenScience/57-allow-exporting-c…
BMatischen01 Aug 26, 2025
ea3f3c4
tests: Expect use of call_api in is_public method
BMatischen01 Aug 27, 2025
1fa20a0
refactor: Use call_api in is_public method
BMatischen01 Aug 27, 2025
a7dc2ca
tests: Check request headers added as expected in call_api
BMatischen01 Aug 27, 2025
02e29af
refactor: Use call_api in show_welcome command
BMatischen01 Aug 27, 2025
bc3f13b
chore: Fix linting errors
BMatischen01 Aug 27, 2025
152f097
chore: Bump release to 0.1.2
BMatischen01 Aug 28, 2025
fa6f07c
Merge pull request #88 from CenterForOpenScience/bump-release-to-0.1.2
BMatischen01 Aug 28, 2025
7dd10e8
chore: Rename package to osf-project-exporter
BMatischen01 Aug 28, 2025
112c4eb
docs: Rename package to osfexport
BMatischen01 Aug 28, 2025
e4f0baf
Merge pull request #89 from CenterForOpenScience/rename-package-for-pypi
BMatischen01 Aug 28, 2025
62b60e7
chore: Bump version to 0.1.3
BMatischen01 Aug 28, 2025
d18e2bf
Merge pull request #90 from CenterForOpenScience/rename-package-for-pypi
BMatischen01 Aug 28, 2025
be77b45
docs: Add instructions to install from PyPI
BMatischen01 Aug 28, 2025
d5fdd7d
docs: Reorder sections, fix formatting
BMatischen01 Aug 28, 2025
e061bc0
chore: Bump version to 0.1.4
BMatischen01 Aug 28, 2025
8ac7121
Merge pull request #91 from CenterForOpenScience/release-on-pypi
BMatischen01 Aug 28, 2025
1dae9e6
tests: Readd test for making image HTML
BMatischen01 Aug 28, 2025
f13e5d2
tests: Expect image link if error downloading it
BMatischen01 Aug 28, 2025
1430a7d
fix: Add links if error in downloading image
BMatischen01 Aug 28, 2025
7f4f4dc
refactor: Remove extra lines, linting errors
BMatischen01 Aug 28, 2025
999fac9
tests: Add expected parent field and titles for mock PDFs
BMatischen01 Aug 28, 2025
652a0be
tests: Set parent field as tuple
BMatischen01 Aug 28, 2025
96331ae
fix: Use parent tuple to add its title to sections
BMatischen01 Aug 28, 2025
533f2b2
tests: Add checks for parent tuples in integration test
BMatischen01 Aug 29, 2025
eb39f5f
feat: Add parent tuple to project data dict
BMatischen01 Aug 29, 2025
557b370
tests: Correct expected URLs
BMatischen01 Aug 29, 2025
61b86be
tests: Correct parent links in JSON stubs
BMatischen01 Aug 29, 2025
44ba82f
fix: Get link to parent HTML
BMatischen01 Aug 29, 2025
09dfe73
fix: Use read() on actual request before parsing as JSON
BMatischen01 Aug 29, 2025
6c0ea58
Merge pull request #87 from CenterForOpenScience/76-add-user-agent-he…
BMatischen01 Aug 29, 2025
ca2030c
Merge branch 'development' into 92-401-errors-when-attempting-to-down…
BMatischen01 Aug 29, 2025
1b3a19e
fix: Use updated package name
BMatischen01 Aug 29, 2025
d7a7b36
Merge pull request #93 from CenterForOpenScience/92-401-errors-when-a…
BMatischen01 Aug 29, 2025
f4fb13f
Merge branch 'development' into 86-show-title-of-direct-parent-when-i…
BMatischen01 Aug 29, 2025
e55db0c
chore: Fix linting errors
BMatischen01 Aug 29, 2025
8259bc1
Merge pull request #96 from CenterForOpenScience/86-show-title-of-dir…
BMatischen01 Aug 29, 2025
692b199
tests: Add tests for error handling when getting projects
BMatischen01 Aug 29, 2025
3db38e9
feat: Continue loops if HTTPErrors
BMatischen01 Aug 29, 2025
ffbd4ca
tests: Check error message given for HTTP 401 error for export-projec…
BMatischen01 Aug 29, 2025
6b60e10
fix: Show error message if command gets 401 error
BMatischen01 Aug 29, 2025
8839a96
fix: Avoid errors for non-existant next page and paginated results
BMatischen01 Aug 29, 2025
ea60ef7
tests: Assert paginate_json_result throws error on first fail
BMatischen01 Aug 29, 2025
3d47fa0
fix: Split out if-else in get_nodes to avoid bad assignment
BMatischen01 Aug 29, 2025
7907b7f
fix: Raise error by default in paginate_json_result if first item fails
BMatischen01 Aug 29, 2025
747ecb9
fix: Show error message for 404 errors
BMatischen01 Aug 29, 2025
30184a7
tests: Pluralise 401 message based on project_id
BMatischen01 Aug 29, 2025
800af3b
feat: Pluralise 401 message based on project_id
BMatischen01 Aug 29, 2025
3eab7bc
refactor: Simplify test and pluralise other messages
BMatischen01 Aug 29, 2025
8e63f3f
fix: Return dict with data key if dryrun and ID not in file dictionaries
BMatischen01 Aug 29, 2025
9787f5b
style: Add click formatted error messages
BMatischen01 Aug 29, 2025
d76d294
style: Add message for other HTTP errors
BMatischen01 Aug 29, 2025
a5ba434
tests: Parameterise export-projects test with error codes
BMatischen01 Aug 29, 2025
081e405
chore: Fix typo
BMatischen01 Aug 29, 2025
045a215
chore: Fix linting errors
BMatischen01 Aug 29, 2025
7ad6832
Merge pull request #97 from CenterForOpenScience/49-improve-error-han…
BMatischen01 Aug 29, 2025
8b9d8b6
style: Reduce font sizes and gaps between lines
BMatischen01 Sep 1, 2025
08e4f25
style: Replace colons with hyphens in file name
BMatischen01 Sep 1, 2025
62f933b
style: Set x position of lines to remove some gaps
BMatischen01 Sep 1, 2025
ffe1ab7
fix: Avoid title text hiding behind QR code
BMatischen01 Sep 1, 2025
6c090b1
fix: Move footer QR code to avoid hiding text
BMatischen01 Sep 1, 2025
03a0a07
style: Show NA if a list field is empty
BMatischen01 Sep 1, 2025
4482370
style: Reduce gap between metadata and contributors section
BMatischen01 Sep 1, 2025
d5817f3
style: Positioning for titles
BMatischen01 Sep 1, 2025
9ad4a1c
tests: Expect handling of URLErrors in cli.py
BMatischen01 Sep 1, 2025
9835cc4
fix: Handle URLErrors in export_projects command
BMatischen01 Sep 1, 2025
7da0120
tests: Add 429 code to list of HTTP errors to explicitly handle
BMatischen01 Sep 1, 2025
d371105
style: Explain URLErrors are about connecting to OSF
BMatischen01 Sep 1, 2025
eb7145b
tests: Expect call_api to try multiple times if 429 errors encountered
BMatischen01 Sep 1, 2025
4d44af5
feat: Add basic throttling to call_api method
BMatischen01 Sep 1, 2025
c0c9ceb
tests: Expect flag for testing call_api with constant delay
BMatischen01 Sep 1, 2025
cbe090f
refactor: Add flag for constant time or exponential backoff
BMatischen01 Sep 1, 2025
539ebff
style: Reduce Size column width, font size in FIles table
BMatischen01 Sep 1, 2025
ada474f
style: Specify parent and component in WIki header
BMatischen01 Sep 1, 2025
e871e9b
style: Move project links to same line as titles
BMatischen01 Sep 1, 2025
bd2a2b7
style: Adjust spacing between sections
BMatischen01 Sep 1, 2025
f9725a3
tests: Add checks 429 errors raised in get_project_data and paginate_…
BMatischen01 Sep 1, 2025
99206c1
fix: Raise 429 errors in get_project_data, paginate_json_result
BMatischen01 Sep 1, 2025
3a927f8
feat: Add max_tries param with upper bound of 7 attempts
BMatischen01 Sep 1, 2025
64d98c0
chore: Fix linting errors
BMatischen01 Sep 1, 2025
3240aa6
chore: Fix linting errors
BMatischen01 Sep 1, 2025
a33620a
tests: Run TestFormatter tests in workflow
BMatischen01 Sep 1, 2025
c3ac04c
tests: Update expected timestamps in filenames
BMatischen01 Sep 1, 2025
c9e8b08
tests: Update expected title strings in TestFormatter tests
BMatischen01 Sep 1, 2025
37ecc99
tests: Add TestFormatter tests to workflow
BMatischen01 Sep 1, 2025
ba891ca
refactor: Use different fonts on same lines for titles
BMatischen01 Sep 1, 2025
6325446
style: Tweak title and table link styling
BMatischen01 Sep 1, 2025
31d6d08
style: Tweak size and font size of Contributors table
BMatischen01 Sep 1, 2025
0d4fbf1
style: Put links on new lines to avoid messy wrapping
BMatischen01 Sep 1, 2025
2cf2cee
chore: Fix linting errors
BMatischen01 Sep 2, 2025
2aace82
tests: Update format of expected URLs
BMatischen01 Sep 2, 2025
6722b0f
Merge pull request #99 from CenterForOpenScience/85-compress-and-make…
BMatischen01 Sep 2, 2025
17fccb5
Merge branch 'development' into 74-handle-429-errors
BMatischen01 Sep 2, 2025
9a40631
style: Format error messages with more explicit steps
BMatischen01 Sep 2, 2025
f36525c
chore: Fix linting errors
BMatischen01 Sep 2, 2025
9b71d31
chore: Remove print statements in tests
BMatischen01 Sep 2, 2025
f8c09fc
fix: Add Component label to titles
BMatischen01 Sep 2, 2025
4080042
Merge pull request #101 from CenterForOpenScience/100-add-component-l…
BMatischen01 Sep 2, 2025
6813a79
tests: Parameterise ID extraction test with view only links
BMatischen01 Sep 2, 2025
af5bd96
fix: Handle more variety of URLs in extract_project_id
BMatischen01 Sep 2, 2025
4a41291
Merge pull request #102 from CenterForOpenScience/95-improve-extracti…
BMatischen01 Sep 2, 2025
58046d5
Merge pull request #98 from CenterForOpenScience/74-handle-429-errors
BMatischen01 Sep 2, 2025
4a3b01f
chore: Bump version to 0.2.0
BMatischen01 Sep 2, 2025
3f64c7d
Merge pull request #103 from CenterForOpenScience/make-0.2.0-release
BMatischen01 Sep 2, 2025
f810241
tests: Describe codes to return booleans or errors for
BMatischen01 Sep 3, 2025
e60e456
fix: Raise appropriate errors in is_public
BMatischen01 Sep 3, 2025
85e3cbd
tests: Check error handling for errors from prompt_pat
BMatischen01 Sep 3, 2025
b36d5b4
fix: Handle errors from prompt_pat raised by is_public method
BMatischen01 Sep 3, 2025
1152e7c
chore: Fix linting errors
BMatischen01 Sep 3, 2025
1daf874
refactor: Simplify HTTPError import
BMatischen01 Sep 3, 2025
35d1c65
refactor: Show expected/actual results for new tests
BMatischen01 Sep 3, 2025
a5de019
docs: Explain purpose of is_public method
BMatischen01 Sep 3, 2025
0bebd6d
Merge pull request #105 from CenterForOpenScience/104-raise-errors-wh…
BMatischen01 Sep 3, 2025
06f51a8
chore: Bump version to 0.2.1
BMatischen01 Sep 3, 2025
3989fcb
Merge pull request #106 from CenterForOpenScience/bump-version-to-0.2.1
BMatischen01 Sep 3, 2025
15ccd9d
fix: Replace click.echo with logging.warning in exporter.py
BMatischen01 Sep 4, 2025
034a50e
chore: Bump version to 0.2.2
BMatischen01 Sep 4, 2025
df023c1
chore: Fix linting errors
BMatischen01 Sep 4, 2025
7450c86
Merge pull request #109 from CenterForOpenScience/107-stop-trying-to-…
BMatischen01 Sep 4, 2025
87f6293
tests: Update format of expected date in mock PDF
BMatischen01 Sep 4, 2025
a601980
fix: Render timestamps as 24hr UTC
BMatischen01 Sep 4, 2025
4b226e8
fix: Make Exported timestamps UTC
BMatischen01 Sep 4, 2025
f321b20
Merge pull request #112 from CenterForOpenScience/110-use-utc-timesta…
BMatischen01 Sep 4, 2025
54951e0
chore: Bump version to 0.2.3
BMatischen01 Sep 4, 2025
def6773
Merge pull request #113 from CenterForOpenScience/osfexport-0.2.3
BMatischen01 Sep 4, 2025
fce5d3a
style: Shorten command names
BMatischen01 Sep 4, 2025
f041c7c
docs: Update metadata in pyproject.toml
BMatischen01 Sep 4, 2025
b213994
tests: Use updated name for commands in CLI tests
BMatischen01 Sep 4, 2025
cf8d032
fix: Correct syntax for ReleaseNotes
BMatischen01 Sep 4, 2025
a2fc0f9
refactor: Remove redundant Docker files
BMatischen01 Sep 4, 2025
65fd147
docs: Update README with new commands, remove Docker section
BMatischen01 Sep 4, 2025
328458b
fix: Remove extra newline causing error when logging
BMatischen01 Sep 4, 2025
9a8b3b5
style: Add warning labels to make clear purpose of statements
BMatischen01 Sep 4, 2025
4ce1db9
Merge pull request #115 from CenterForOpenScience/make-v1.0.0-release
BMatischen01 Sep 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Bases of host URL to the test and production API servers
# Defaults are https://api.test.osf.io/v2/ (test) and
# https://api.osf.io/v2/ (production)
# See https://developer.osf.io/#tag/General-Usage
API_HOST_TEST=https://api.test.osf.io/v2
API_HOST_PROD=https://api.osf.io/v2
44 changes: 44 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Test on Pull Request

on:
pull_request:
branches: [ "development", "main" ]

permissions:
contents: read

jobs:
test:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v3
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements.core.txt ]; then pip install -r requirements.core.txt; fi
pip install --editable .
- name: Check linting quality
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 100 chars wide
flake8 . --max-line-length=100 --statistics
- name: Run local tests
run: |
python -m unittest tests.test_clitool.TestExporter
python -m unittest tests.test_clitool.TestFormatter
python -m unittest tests.test_clitool.TestCLI
- name: Run API tests
run: |
python -m unittest -f tests.test_clitool.TestAPI
198 changes: 198 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
# PDFs
*.pdf

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
#uv.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
#poetry.toml

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

# Abstra
# Abstra is an AI-powered process automation framework.
# Ignore directories containing user credentials, local state, and settings.
# Learn more at https://abstra.io/docs
.abstra/

# Visual Studio Code
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
# and can be added to the global gitignore or merged into this file. However, if you prefer,
# you could uncomment the following to ignore the entire vscode folder
.vscode/

# Ruff stuff:
.ruff_cache/

# PyPI configuration file
.pypirc

# Cursor
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
# refer to https://docs.cursor.com/context/ignore-files
.cursorignore
.cursorindexingignore
Loading