invenio-catalogue-marc21 0.1.0__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.
Files changed (106) hide show
  1. invenio_catalogue_marc21-0.1.0/.editorconfig +24 -0
  2. invenio_catalogue_marc21-0.1.0/.github/workflows/pypi-publish.yml +20 -0
  3. invenio_catalogue_marc21-0.1.0/.github/workflows/tests.yml +35 -0
  4. invenio_catalogue_marc21-0.1.0/.gitignore +86 -0
  5. invenio_catalogue_marc21-0.1.0/.tx/config +33 -0
  6. invenio_catalogue_marc21-0.1.0/AUTHORS.rst +14 -0
  7. invenio_catalogue_marc21-0.1.0/CHANGES.rst +18 -0
  8. invenio_catalogue_marc21-0.1.0/CONTRIBUTING.rst +118 -0
  9. invenio_catalogue_marc21-0.1.0/INSTALL.rst +8 -0
  10. invenio_catalogue_marc21-0.1.0/LICENSE +21 -0
  11. invenio_catalogue_marc21-0.1.0/PKG-INFO +80 -0
  12. invenio_catalogue_marc21-0.1.0/README.rst +29 -0
  13. invenio_catalogue_marc21-0.1.0/eslint.config.js +167 -0
  14. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/__init__.py +15 -0
  15. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/cli.py +99 -0
  16. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/config.py +20 -0
  17. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ext.py +98 -0
  18. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/fixtures/__init__.py +10 -0
  19. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/fixtures/demo.py +308 -0
  20. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/fixtures/tasks.py +119 -0
  21. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/proxies.py +19 -0
  22. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/records/__init__.py +16 -0
  23. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/records/api.py +39 -0
  24. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/records/jsonschemas/__init__.py +18 -0
  25. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/records/jsonschemas/marc21-catalogue/marc21-catalogue-v1.0.0.json +101 -0
  26. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/records/systemfields/__init__.py +14 -0
  27. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/records/systemfields/catalogue_check.py +66 -0
  28. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/__init__.py +30 -0
  29. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/args.py +0 -0
  30. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/config.py +137 -0
  31. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/deserializers/__init__.py +9 -0
  32. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/deserializers/deserializer.py +26 -0
  33. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/deserializers/schema.py +35 -0
  34. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/resources.py +190 -0
  35. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/__init__.py +22 -0
  36. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/base/__init__.py +20 -0
  37. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/base/schema.py +71 -0
  38. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/base/serializer.py +37 -0
  39. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/catalogue/__init__.py +17 -0
  40. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/catalogue/schema.py +51 -0
  41. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/catalogue/serializer.py +48 -0
  42. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/deposit/__init__.py +17 -0
  43. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/deposit/schema.py +78 -0
  44. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/deposit/serializer.py +36 -0
  45. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/fields/__init__.py +14 -0
  46. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/fields/metadata.py +128 -0
  47. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/ui/__init__.py +18 -0
  48. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/ui/schema.py +48 -0
  49. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/resources/serializers/ui/serializer.py +35 -0
  50. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/__init__.py +18 -0
  51. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/components/__init__.py +31 -0
  52. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/components/catalogue.py +51 -0
  53. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/config.py +40 -0
  54. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/links.py +175 -0
  55. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/results.py +27 -0
  56. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/schemas/__init__.py +17 -0
  57. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/schemas/catalogue.py +29 -0
  58. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/services/services.py +127 -0
  59. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/__init__.py +13 -0
  60. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/CatalogueDepositForm.js +97 -0
  61. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/CatalogueTree.js +39 -0
  62. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/CatalogueTreeItem.js +24 -0
  63. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/ContextMenu.js +45 -0
  64. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/ImportFromAlma.js +145 -0
  65. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/ManageRecord.js +94 -0
  66. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/Marc21CatalogueSerializer.js +51 -0
  67. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/Tree.js +221 -0
  68. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/components/index.js +12 -0
  69. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/deposit/index.js +78 -0
  70. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/js/invenio_catalogue_marc21/landing_page/index.js +73 -0
  71. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/less/invenio_catalogue_marc21/catalogue.less +25 -0
  72. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/less/invenio_catalogue_marc21/deposit.less +81 -0
  73. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/less/invenio_catalogue_marc21/landing-page.less +40 -0
  74. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/less/invenio_catalogue_marc21/theme.less +15 -0
  75. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/less/invenio_catalogue_marc21/variables.less +13 -0
  76. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/i18next-scanner.config.js +65 -0
  77. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/i18next.js +38 -0
  78. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/messages/de/translations.json +4 -0
  79. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/messages/en/translations.json +4 -0
  80. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/messages/index.js +7 -0
  81. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/package.json +20 -0
  82. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/scripts/compileCatalog.js +41 -0
  83. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/scripts/initCatalog.js +21 -0
  84. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/assets/semantic-ui/translations/invenio_catalogue_marc21/translations.pot +16 -0
  85. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/blueprints.py +68 -0
  86. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/decorators.py +119 -0
  87. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/deposit.py +56 -0
  88. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/errors.py +35 -0
  89. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/filters.py +21 -0
  90. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/base.html +14 -0
  91. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/deposit/base.html +34 -0
  92. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/deposit/index.html +125 -0
  93. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/landing_page/helpers/chapters.html +48 -0
  94. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/landing_page/helpers/files.html +7 -0
  95. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/landing_page/helpers/header.html +39 -0
  96. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/landing_page/helpers/links.html +15 -0
  97. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/landing_page/helpers/metadata.html +75 -0
  98. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/landing_page/helpers/title.html +19 -0
  99. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/templates/invenio_catalogue_marc21/landing_page/record.html +67 -0
  100. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/views.py +130 -0
  101. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/ui/webpack.py +41 -0
  102. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/utils.py +10 -0
  103. invenio_catalogue_marc21-0.1.0/invenio_catalogue_marc21/views.py +49 -0
  104. invenio_catalogue_marc21-0.1.0/package.json +3 -0
  105. invenio_catalogue_marc21-0.1.0/prettier.config.js +29 -0
  106. invenio_catalogue_marc21-0.1.0/pyproject.toml +140 -0
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2024-2025 Graz University of Technology.
4
+ #
5
+ # invenio-catalogue-marc21 is free software; you can redistribute it and/or
6
+ # modify it under the terms of the MIT License; see LICENSE file for more
7
+ # details.
8
+
9
+ root = true
10
+
11
+ [*]
12
+ indent_style = space
13
+ end_of_line = lf
14
+ insert_final_newline = true
15
+ trim_trailing_whitespace = true
16
+ charset = utf-8
17
+
18
+ # RST files (used by sphinx)
19
+ [*.rst]
20
+ indent_size = 4
21
+
22
+ # Matches the exact files either package.json or .github/workflows/*.yml
23
+ [{package.json,.github/workflows/*.yml}]
24
+ indent_size = 2
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2024-2025 Graz University of Technology.
4
+ #
5
+ # invenio-catalogue-marc21 is free software; you can redistribute it and/or
6
+ # modify it under the terms of the MIT License; see LICENSE file for more
7
+ # details.
8
+
9
+
10
+ name: Publish
11
+
12
+ on:
13
+ push:
14
+ tags:
15
+ - v*
16
+
17
+ jobs:
18
+ build-n-publish:
19
+ uses: tu-graz-library/.github/.github/workflows/pypi-publish.yml@main
20
+ secrets: inherit
@@ -0,0 +1,35 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2024-2025 Graz University of Technology.
4
+ #
5
+ # invenio-catalogue-marc21 is free software; you can redistribute it and/or
6
+ # modify it under the terms of the MIT License; see LICENSE file for more
7
+ # details.
8
+
9
+
10
+ name: CI
11
+
12
+ on:
13
+ push:
14
+ branches: master
15
+ pull_request:
16
+ branches:
17
+ - master
18
+ - "maint-**"
19
+ schedule:
20
+ # * is a special character in YAML so you have to quote this string
21
+ - cron: "0 3 * * 6"
22
+ workflow_dispatch:
23
+ inputs:
24
+ reason:
25
+ description: "Reason"
26
+ required: false
27
+ default: "Manual trigger"
28
+
29
+ jobs:
30
+ python_tests:
31
+ uses: inveniosoftware/workflows/.github/workflows/tests-python.yml@master
32
+ with:
33
+ python-version: '["3.12", "3.13"]'
34
+ javascript_tests:
35
+ uses: inveniosoftware/workflows/.github/workflows/tests-js.yml@master
@@ -0,0 +1,86 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file is part of Invenio.
4
+ #
5
+ # Copyright (C) 2024 Graz University of Technology.
6
+ #
7
+ # invenio-catalogue-marc21 is free software; you can redistribute it and/or
8
+ # modify it under the terms of the MIT License; see LICENSE file for more
9
+ # details.
10
+
11
+ # Byte-compiled / optimized / DLL files
12
+ __pycache__/**
13
+ *.py[cod]
14
+
15
+ # Idea software family
16
+ .idea/
17
+
18
+ # C extensions
19
+ *.so
20
+
21
+ # Distribution / packaging
22
+ .Python
23
+ venv/
24
+ env/
25
+ build/
26
+ develop-eggs/
27
+ dist/
28
+ downloads/
29
+ eggs/
30
+ .eggs/
31
+ lib/
32
+ lib64/
33
+ parts/
34
+ sdist/
35
+ var/
36
+ *.egg-info/
37
+ .installed.cfg
38
+ *.egg
39
+
40
+ # PyInstaller
41
+ # Usually these files are written by a python script from a template
42
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
43
+ *.manifest
44
+ *.spec
45
+
46
+ # Installer logs
47
+ pip-log.txt
48
+ pip-delete-this-directory.txt
49
+
50
+ # Unit test / coverage reports
51
+ htmlcov/
52
+ .tox/
53
+ .coverage
54
+ .coverage.*
55
+ .cache
56
+ nosetests.xml
57
+ coverage.xml
58
+ *,cover
59
+
60
+ # Translations
61
+ *.mo
62
+
63
+ # Django stuff:
64
+ *.log
65
+
66
+ # Sphinx documentation
67
+ docs/_build/
68
+
69
+ # PyBuilder
70
+ target/
71
+
72
+ # Vim swapfiles
73
+ .*.sw?
74
+
75
+ # node modules
76
+ **/*/node_modules
77
+ node_modules
78
+ 0
79
+
80
+ # vscode
81
+ .vscode/
82
+
83
+ # node modules
84
+ **/*/node_modules
85
+ node_modules
86
+ pnpm-lock.yaml
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2024 Graz University of Technology.
4
+ #
5
+ # invenio-catalogue-marc21 is free software; you can redistribute it and/or
6
+ # modify it under the terms of the MIT License; see LICENSE file for more
7
+ # details.
8
+
9
+ # TODO: Transifex integration
10
+ #
11
+ # 1) Create message catalog:
12
+ # $ python setup.py extract_messages
13
+ # $ python setup.py init_catalog -l <lang>
14
+ # $ python setup.py compile_catalog
15
+ # 2) Ensure project has been created on Transifex under the inveniosoftware
16
+ # organisation.
17
+ # 3) Install the transifex-client
18
+ # $ pip install transifex-client
19
+ # 4) Push source (.pot) and translations (.po) to Transifex
20
+ # $ tx push -s -t
21
+ # 5) Pull translations for a single language from Transifex
22
+ # $ tx pull -l <lang>
23
+ # 6) Pull translations for all languages from Transifex
24
+ # $ tx pull -a
25
+
26
+ [main]
27
+ host = https://www.transifex.com
28
+
29
+ [invenio.invenio-catalogue-marc21-messages]
30
+ file_filter = invenio_catalogue_marc21/translations/<lang>/LC_MESSAGES/messages.po
31
+ source_file = invenio_catalogue_marc21/translations/messages.pot
32
+ source_lang = en
33
+ type = PO
@@ -0,0 +1,14 @@
1
+ ..
2
+ Copyright (C) 2024 Graz University of Technology.
3
+
4
+ invenio-catalogue-marc21 is free software; you can redistribute it
5
+ and/or modify it under the terms of the MIT License; see LICENSE file for
6
+ more details.
7
+
8
+ Authors
9
+ =======
10
+
11
+ Invenio module link multiple marc21 modules
12
+
13
+ - Graz University of Technology <philipp.gualdi@tugraz.at>
14
+ - Philipp Gualdi
@@ -0,0 +1,18 @@
1
+ ..
2
+ Copyright (C) 2024-2025 Graz University of Technology.
3
+
4
+ invenio-catalogue-marc21 is free software; you can redistribute it
5
+ and/or modify it under the terms of the MIT License; see LICENSE file for
6
+ more details.
7
+
8
+ Changes
9
+ =======
10
+
11
+ Version v0.0.2 (release 2025-07-21)
12
+
13
+ - setup: change to reusable workflows
14
+
15
+
16
+ Version v0.0.1 (release 2025-07-21)
17
+
18
+ - base functionality, more a proof of concept than a working state
@@ -0,0 +1,118 @@
1
+ Contributing
2
+ ============
3
+
4
+ Contributions are welcome, and they are greatly appreciated! Every
5
+ little bit helps, and credit will always be given.
6
+
7
+ Types of Contributions
8
+ ----------------------
9
+
10
+ Report Bugs
11
+ ~~~~~~~~~~~
12
+
13
+ Report bugs at https://github.com/tu-graz-library/invenio-catalogue-marc21/issues.
14
+
15
+ If you are reporting a bug, please include:
16
+
17
+ * Your operating system name and version.
18
+ * Any details about your local setup that might be helpful in troubleshooting.
19
+ * Detailed steps to reproduce the bug.
20
+
21
+ Fix Bugs
22
+ ~~~~~~~~
23
+
24
+ Look through the GitHub issues for bugs. Anything tagged with "bug"
25
+ is open to whoever wants to implement it.
26
+
27
+ Implement Features
28
+ ~~~~~~~~~~~~~~~~~~
29
+
30
+ Look through the GitHub issues for features. Anything tagged with "feature"
31
+ is open to whoever wants to implement it.
32
+
33
+ Write Documentation
34
+ ~~~~~~~~~~~~~~~~~~~
35
+
36
+ invenio-catalogue-marc21 could always use more documentation, whether as part of the
37
+ official invenio-catalogue-marc21 docs, in docstrings, or even on the web in blog posts,
38
+ articles, and such.
39
+
40
+ Submit Feedback
41
+ ~~~~~~~~~~~~~~~
42
+
43
+ The best way to send feedback is to file an issue at
44
+ https://github.com/tu-graz-library/invenio-catalogue-marc21/issues.
45
+
46
+ If you are proposing a feature:
47
+
48
+ * Explain in detail how it would work.
49
+ * Keep the scope as narrow as possible, to make it easier to implement.
50
+ * Remember that this is a volunteer-driven project, and that contributions
51
+ are welcome :)
52
+
53
+ Get Started!
54
+ ------------
55
+
56
+ Ready to contribute? Here's how to set up `invenio-catalogue-marc21` for local development.
57
+
58
+ 1. Fork the `tu-graz-library/invenio-catalogue-marc21` repo on GitHub.
59
+ 2. Clone your fork locally:
60
+
61
+ .. code-block:: console
62
+
63
+ $ git clone git@github.com:your_name_here/invenio-catalogue-marc21.git
64
+
65
+ 3. Install your local copy into a virtualenv. Assuming you have
66
+ virtualenvwrapper installed, this is how you set up your fork for local
67
+ development:
68
+
69
+ .. code-block:: console
70
+
71
+ $ mkvirtualenv invenio-catalogue-marc21
72
+ $ cd invenio-catalogue-marc21/
73
+ $ pip install -e .[all]
74
+
75
+ 4. Create a branch for local development:
76
+
77
+ .. code-block:: console
78
+
79
+ $ git checkout -b name-of-your-bugfix-or-feature
80
+
81
+ Now you can make your changes locally.
82
+
83
+ 5. When you're done making changes, check that your changes pass tests:
84
+
85
+ .. code-block:: console
86
+
87
+ $ ./run-tests.sh
88
+
89
+ The tests will provide you with test coverage and also check PEP8
90
+ (code style), PEP257 (documentation), flake8 as well as build the Sphinx
91
+ documentation and run doctests.
92
+
93
+ 6. Commit your changes and push your branch to GitHub:
94
+
95
+ .. code-block:: console
96
+
97
+ $ git add .
98
+ $ git commit -s
99
+ -m "component: title without verbs"
100
+ -m "* NEW Adds your new feature."
101
+ -m "* FIX Fixes an existing issue."
102
+ -m "* BETTER Improves and existing feature."
103
+ -m "* Changes something that should not be visible in release notes."
104
+ $ git push origin name-of-your-bugfix-or-feature
105
+
106
+ 7. Submit a pull request through the GitHub website.
107
+
108
+ Pull Request Guidelines
109
+ -----------------------
110
+
111
+ Before you submit a pull request, check that it meets these guidelines:
112
+
113
+ 1. The pull request should include tests and must not decrease test coverage.
114
+ 2. If the pull request adds functionality, the docs should be updated. Put
115
+ your new functionality into a function with a docstring.
116
+ 3. The pull request should work for Python 3.6, 3.7, 3.8 and 3.9. Check
117
+ https://github.com/inveniosoftware/tu-graz-library/invenio-catalogue-marc21/actions?query=event%3Apull_request
118
+ and make sure that the tests pass for all supported Python versions.
@@ -0,0 +1,8 @@
1
+ Installation
2
+ ============
3
+
4
+ invenio-catalogue-marc21 is on PyPI so all you need is:
5
+
6
+ .. code-block:: console
7
+
8
+ $ pip install invenio-catalogue-marc21
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (C) 2024 Graz University of Technology.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+ of the Software, and to permit persons to whom the Software is furnished to do
10
+ so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,80 @@
1
+ Metadata-Version: 2.4
2
+ Name: invenio-catalogue-marc21
3
+ Version: 0.1.0
4
+ Summary: Invenio module link multiple marc21 records modules.
5
+ Project-URL: Repository, https://github.com/tu-graz-library/invenio-catalogue-marc21
6
+ Author-email: Graz University of Technology <info@tugraz.at>
7
+ License: MIT License
8
+
9
+ Copyright (C) 2024 Graz University of Technology.
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
12
+ this software and associated documentation files (the "Software"), to deal in
13
+ the Software without restriction, including without limitation the rights to
14
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
15
+ of the Software, and to permit persons to whom the Software is furnished to do
16
+ so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+ License-File: AUTHORS.rst
29
+ License-File: LICENSE
30
+ Keywords: catalogue,invenio,publications,tugraz
31
+ Classifier: Development Status :: 4 - Beta
32
+ Classifier: License :: OSI Approved :: MIT License
33
+ Classifier: Operating System :: OS Independent
34
+ Classifier: Programming Language :: Python
35
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
36
+ Requires-Python: >=3.12
37
+ Requires-Dist: faker-file[pdf]>0.17.0
38
+ Requires-Dist: faker>=9.0.0
39
+ Requires-Dist: invenio-base<3.0.0,>=2.0.0
40
+ Requires-Dist: invenio-i18n<4.0.0,>=3.0.0
41
+ Requires-Dist: invenio-records-marc21<1.0.0,>=0.20.0
42
+ Requires-Dist: invenio-search[opensearch2]<4.0.0,>=3.0.0
43
+ Requires-Dist: reportlab>=4.0.0
44
+ Provides-Extra: tests
45
+ Requires-Dist: invenio-app<3.0.0,>=2.0.0; extra == 'tests'
46
+ Requires-Dist: pytest-black>=0.6.0; extra == 'tests'
47
+ Requires-Dist: pytest-invenio<4.0.0,>=3.0.0; extra == 'tests'
48
+ Requires-Dist: ruff>=0.11; extra == 'tests'
49
+ Requires-Dist: sphinx>=8.0.0; extra == 'tests'
50
+ Description-Content-Type: text/x-rst
51
+
52
+ ..
53
+ Copyright (C) 2024 Graz University of Technology.
54
+
55
+ invenio-catalogue-marc21 is free software; you can redistribute it
56
+ and/or modify it under the terms of the MIT License; see LICENSE file for
57
+ more details.
58
+
59
+ ==========================
60
+ invenio-catalogue-marc21
61
+ ==========================
62
+
63
+ .. image:: https://github.com/tu-graz-library/invenio-catalogue-marc21/workflows/CI/badge.svg
64
+ :target: https://github.com/tu-graz-library/invenio-catalogue-marc21/actions?query=workflow%3ACI
65
+
66
+ .. image:: https://img.shields.io/github/tag/tu-graz-library/invenio-catalogue-marc21.svg
67
+ :target: https://github.com/tu-graz-library/invenio-catalogue-marc21/releases
68
+
69
+ .. image:: https://img.shields.io/pypi/dm/invenio-catalogue-marc21.svg
70
+ :target: https://pypi.python.org/pypi/invenio-catalogue-marc21
71
+
72
+ .. image:: https://img.shields.io/github/license/tu-graz-library/invenio-catalogue-marc21.svg
73
+ :target: https://github.com/tu-graz-library/invenio-catalogue-marc21/blob/master/LICENSE
74
+
75
+ Invenio module link multiple marc21 modules
76
+
77
+ TODO: Please provide feature overview of module
78
+
79
+ Further documentation is available on
80
+ https://invenio-catalogue-marc21.readthedocs.io/
@@ -0,0 +1,29 @@
1
+ ..
2
+ Copyright (C) 2024 Graz University of Technology.
3
+
4
+ invenio-catalogue-marc21 is free software; you can redistribute it
5
+ and/or modify it under the terms of the MIT License; see LICENSE file for
6
+ more details.
7
+
8
+ ==========================
9
+ invenio-catalogue-marc21
10
+ ==========================
11
+
12
+ .. image:: https://github.com/tu-graz-library/invenio-catalogue-marc21/workflows/CI/badge.svg
13
+ :target: https://github.com/tu-graz-library/invenio-catalogue-marc21/actions?query=workflow%3ACI
14
+
15
+ .. image:: https://img.shields.io/github/tag/tu-graz-library/invenio-catalogue-marc21.svg
16
+ :target: https://github.com/tu-graz-library/invenio-catalogue-marc21/releases
17
+
18
+ .. image:: https://img.shields.io/pypi/dm/invenio-catalogue-marc21.svg
19
+ :target: https://pypi.python.org/pypi/invenio-catalogue-marc21
20
+
21
+ .. image:: https://img.shields.io/github/license/tu-graz-library/invenio-catalogue-marc21.svg
22
+ :target: https://github.com/tu-graz-library/invenio-catalogue-marc21/blob/master/LICENSE
23
+
24
+ Invenio module link multiple marc21 modules
25
+
26
+ TODO: Please provide feature overview of module
27
+
28
+ Further documentation is available on
29
+ https://invenio-catalogue-marc21.readthedocs.io/
@@ -0,0 +1,167 @@
1
+ /**
2
+ * ESLint 9.x configuration for React JavaScript project
3
+ * Converted from legacy .eslintrc format with modern alternatives
4
+ */
5
+
6
+ import js from "@eslint/js";
7
+ import jsxA11y from "eslint-plugin-jsx-a11y";
8
+ import prettier from "eslint-plugin-prettier";
9
+ import react from "eslint-plugin-react";
10
+ import reactHooks from "eslint-plugin-react-hooks";
11
+ import globals from "globals";
12
+
13
+ export default [
14
+ // Base JavaScript recommended rules
15
+ js.configs.recommended,
16
+
17
+ // Main configuration
18
+ {
19
+ files: ["**/*.{js,jsx}"],
20
+ languageOptions: {
21
+ ecmaVersion: "latest",
22
+ sourceType: "module",
23
+ globals: {
24
+ ...globals.browser,
25
+ ...globals.es2021,
26
+ ...globals.jest,
27
+ ...globals.node,
28
+ },
29
+ parserOptions: {
30
+ ecmaFeatures: {
31
+ jsx: true,
32
+ },
33
+ },
34
+ },
35
+ plugins: {
36
+ react,
37
+ "react-hooks": reactHooks,
38
+ "jsx-a11y": jsxA11y,
39
+ prettier,
40
+ },
41
+ settings: {
42
+ react: {
43
+ version: "detect",
44
+ },
45
+ },
46
+ rules: {
47
+ // Prettier integration
48
+ "prettier/prettier": "error",
49
+
50
+ // General JavaScript rules
51
+ "camelcase": [
52
+ "error",
53
+ {
54
+ properties: "never",
55
+ ignoreDestructuring: true,
56
+ },
57
+ ],
58
+
59
+ // React rules
60
+ "react/react-in-jsx-scope": "off", // Not needed in React 17+
61
+ "react/jsx-uses-react": "off", // Not needed in React 17+
62
+ "react/prop-types": "warn", // Made less strict as modern alternative
63
+ "react/button-has-type": "warn",
64
+ "react/default-props-match-prop-types": "error",
65
+ "react/destructuring-assignment": "warn",
66
+ "react/display-name": "error",
67
+ "react/no-access-state-in-setstate": "warn",
68
+ "react/no-array-index-key": "warn",
69
+ "react/jsx-boolean-value": "error",
70
+ "react/jsx-closing-bracket-location": ["error", "tag-aligned"],
71
+ "react/jsx-closing-tag-location": "error",
72
+ "react/jsx-curly-brace-presence": [
73
+ "error",
74
+ {
75
+ props: "never",
76
+ },
77
+ ],
78
+ "react/jsx-curly-spacing": "error",
79
+ "react/jsx-equals-spacing": "error",
80
+ "react/jsx-filename-extension": [
81
+ "warn",
82
+ {
83
+ extensions: [".jsx", ".js"],
84
+ },
85
+ ],
86
+ "react/jsx-indent-props": ["error", "first"],
87
+ "react/jsx-key": "error",
88
+ "react/jsx-no-comment-textnodes": "error",
89
+ "react/jsx-no-duplicate-props": "error",
90
+ "react/jsx-no-undef": "error",
91
+ "react/jsx-no-useless-fragment": "warn",
92
+ "react/jsx-pascal-case": "error",
93
+ "react/jsx-props-no-multi-spaces": "error",
94
+ "react/jsx-tag-spacing": [
95
+ "error",
96
+ {
97
+ closingSlash: "never",
98
+ beforeSelfClosing: "always",
99
+ afterOpening: "never",
100
+ beforeClosing: "never",
101
+ },
102
+ ],
103
+ "react/jsx-uses-vars": "error",
104
+ "react/jsx-wrap-multilines": [
105
+ "error",
106
+ {
107
+ declaration: "parens-new-line",
108
+ assignment: "parens-new-line",
109
+ return: "parens-new-line",
110
+ arrow: "parens-new-line",
111
+ condition: "parens-new-line",
112
+ logical: "parens-new-line",
113
+ prop: "ignore",
114
+ },
115
+ ],
116
+ "react/no-children-prop": "error",
117
+ "react/no-danger-with-children": "error",
118
+ "react/no-deprecated": "error",
119
+ "react/no-did-mount-set-state": "error",
120
+ "react/no-did-update-set-state": "error",
121
+ "react/no-direct-mutation-state": "error",
122
+ "react/no-find-dom-node": "error",
123
+ "react/no-is-mounted": "error",
124
+ "react/no-multi-comp": "off",
125
+ "react/no-redundant-should-component-update": "error",
126
+ "react/no-render-return-value": "error",
127
+ "react/no-string-refs": "error",
128
+ "react/no-this-in-sfc": "error",
129
+ "react/no-typos": "error",
130
+ "react/no-unescaped-entities": [
131
+ "error",
132
+ {
133
+ forbid: [">", "}"],
134
+ },
135
+ ],
136
+ "react/no-unknown-property": "error",
137
+ "react/no-unused-prop-types": "error",
138
+ "react/no-unused-state": "error",
139
+ "react/no-will-update-set-state": "error",
140
+ "react/prefer-es6-class": "error",
141
+ "react/require-default-props": "warn",
142
+ "react/require-render-return": "error",
143
+ "react/self-closing-comp": "error",
144
+ "react/sort-comp": "warn",
145
+ "react/void-dom-elements-no-children": "error",
146
+
147
+ // React Hooks rules (modern addition)
148
+ "react-hooks/rules-of-hooks": "error",
149
+ "react-hooks/exhaustive-deps": "warn",
150
+
151
+ // JSX Accessibility rules
152
+ ...jsxA11y.configs.recommended.rules,
153
+ },
154
+ },
155
+
156
+ // Ignore patterns (replaces .eslintignore)
157
+ {
158
+ ignores: [
159
+ "dist/**",
160
+ "build/**",
161
+ "node_modules/**",
162
+ "coverage/**",
163
+ "*.config.js",
164
+ "*.config.mjs",
165
+ ],
166
+ },
167
+ ];
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2024 Graz University of Technology.
4
+ #
5
+ # invenio-catalogue-marc21 is free software; you can redistribute it and/or
6
+ # modify it under the terms of the MIT License; see LICENSE file for more
7
+ # details.
8
+
9
+ """Invenio module link multiple marc21 modules."""
10
+
11
+ from .ext import InvenioCatalogueMarc21
12
+
13
+ __version__ = "0.1.0"
14
+
15
+ __all__ = ("__version__", "InvenioCatalogueMarc21")