Skip to content

Commit b39eecf

Browse files
authored
Merge pull request #3 from Princeton-CDH/chore/1-neuxml
Prepare initial release (#1), drop Python < 3.12 and Django support (#2)
2 parents 2e1a9f7 + 31e0787 commit b39eecf

73 files changed

Lines changed: 34439 additions & 2914 deletions

Some content is hidden

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

.coveragerc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[run]
2-
source = eulxml
2+
source = neuxml
33

44
[report]
55
omit =
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Upload Python Package
2+
3+
on:
4+
release:
5+
types: [created]
6+
workflow_dispatch:
7+
8+
jobs:
9+
build:
10+
name: Build distribution
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
persist-credentials: false
17+
- name: Set up Python
18+
uses: actions/setup-python@v5
19+
with:
20+
python-version: "3.12"
21+
- name: Install pypa/build
22+
run: python3 -m pip install build --user
23+
- name: Build a binary wheel and a source tarball
24+
run: python3 -m build
25+
- name: Store the distribution packages
26+
uses: actions/upload-artifact@v4
27+
with:
28+
name: python-package-distributions
29+
path: dist/
30+
31+
pypi-publish:
32+
name: Upload release to PyPI
33+
needs:
34+
- build
35+
runs-on: ubuntu-latest
36+
environment:
37+
name: pypi
38+
url: https://pypi.org/p/neuxml
39+
permissions:
40+
id-token: write # IMPORTANT: mandatory for trusted publishing
41+
42+
steps:
43+
- name: Download all the dists
44+
uses: actions/download-artifact@v4
45+
with:
46+
name: python-package-distributions
47+
path: dist/
48+
- name: Publish package distributions to PyPI
49+
uses: pypa/gh-action-pypi-publish@release/v1

.gitignore

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ dist
33
*.egg-info
44
*.pyc
55
test-results
6-
eulxml/xpath/lextab.py
7-
eulxml/xpath/parsetab.py
8-
eulxml/schema_data
6+
neuxml/xpath/lextab.py
7+
neuxml/xpath/parsetab.py
98
.tox
109
.eggs
1110
.coverage
1211
.cache
1312
coverage.xml
1413
nosetests.xml
15-
14+
venv*
15+
.DS_Store

.travis.yml

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,16 @@
11
language: python
22

33
python:
4-
- "2.6"
5-
- "2.7"
6-
- "3.3"
7-
- "3.4"
8-
- "3.5"
9-
env:
10-
- DJANGO_ENV="Django>=1.5,<1.6"
11-
- DJANGO_ENV="Django>=1.6,<1.7"
12-
- DJANGO_ENV="Django>=1.7,<1.8"
13-
- DJANGO_ENV="Django>=1.8,<1.9"
14-
15-
matrix:
16-
exclude:
17-
- python: "2.6"
18-
env: DJANGO_ENV="Django>=1.7,<1.8"
19-
- python: "2.6"
20-
env: DJANGO_ENV="Django>=1.8,<1.9"
21-
- python: "3.5"
22-
env: DJANGO_ENV="Django>=1.5,<1.6"
23-
- python: "3.5"
24-
env: DJANGO_ENV="Django>=1.6,<1.7"
25-
- python: "3.5"
26-
env: DJANGO_ENV="Django>=1.7,<1.8"
4+
- "3.12"
275

286
# command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors
297
install:
30-
- pip install $DJANGO_ENV
318
- pip install -e .
32-
- pip install 'eulxml[dev]'
9+
- pip install 'neuxml[dev]'
3310
- pip install coveralls
3411

3512
script:
36-
- nosetests --with-coverage
37-
13+
- pytest --cov=./ --cov-report=xml
14+
3815
after_success:
3916
- coveralls

CHANGELOG.rst

Lines changed: 7 additions & 241 deletions
Original file line numberDiff line numberDiff line change
@@ -2,248 +2,14 @@ Change & Version Information
22
============================
33

44
The following is a summary of changes and improvements to
5-
:mod:`eulxml`. New features in each version should be listed, with
5+
:mod:`neuxml`. New features in each version should be listed, with
66
any necessary information about installation or upgrade notes.
77

8-
1.1.3
8+
0.1.0
99
-----
1010

11-
* Require lxml 3.4 for ``collect_ids`` feature used in duplicate id
12-
support added in eulxml 1.1.2
13-
14-
1.1.2
15-
-----
16-
17-
* Allow duplicate ``xml:ids`` when loading xml if validation is not enabled
18-
(`PR #29 <https://github.com/emory-libraries/eulxml/pull/29>`_ from
19-
`@lddubeau <https://github.com/lddubeau>`_)
20-
21-
1.1.1
22-
-----
23-
24-
* Fix ply version in setup.py so install requirements match setup
25-
requirements
26-
* Only add eulxml catalog file to XML_CATALOG_FILES environment variable
27-
once
28-
29-
1.1
30-
---
31-
32-
* Now using an `XML catalog <http://xmlsoft.org/catalog.html>`_
33-
to load local copies of XSD schemas referenced by included XmlObject
34-
classes. The included catalog is automatically added to the
35-
**XML_CATALOG_FILES** environment variable when eulxml is loaded, and
36-
should be used automatically and transparently by lxml and libxml.
37-
[`#18 <https://github.com/emory-libraries/eulxml/issues/18>`_]
38-
* The use of an HTTP PROXY is no longer required for loading schemas,
39-
and eulxml will not generate warnings if no proxy is set.
40-
* New module eulxml.catalog to download schemas and generate an XML
41-
catalog
42-
* Custom setup.py command `xmlcatalog` as a shortcut for downloading
43-
schemas and generating an XML Catalog
44-
* Customized setup.py so that building the package will download
45-
schemas and generate a catalog if needed (schema files and xml
46-
catalog are now included in package data).
47-
* The existing CERP schema URL no longer resolves; it has has been
48-
replaced with a new url that does, and included in the schema catalog
49-
* bugfix: serializing unicode within xpaths
50-
* bugfix: normalize space on eadid value in eulxml.xmlmap.teimap
51-
* bugfix: xpath serialization error for unicode strings within xpaths
52-
* bugfix: correction in xpath for TEI interp value
53-
54-
1.0.1
55-
-----
56-
57-
* Correct six dependency required version
58-
* Fix six dependency in eulxml.xpath so installation can complete
59-
and generate parsetab and lextab when six installation is not yet
60-
processed. [`#20 <https://github.com/emory-libraries/eulxml/issues/20>`_]
61-
62-
1.0
63-
---
64-
65-
* Now Python 3 compatible, thanks to Morgan Aubert
66-
(`@ellmetha <https://github.com/ellmetha>`_).
67-
* bugfix: BooleanField will now return `None` instead of generating an
68-
error when xml is not present and False is not configured as `None`.
69-
Contributed by Roman Voropaev
70-
(`@roman-voropaev <https://github.com/roman-voropaev>`_).
71-
* Include xml namespace in base TEI class in eulxml.xmlmap.teimap
72-
for xml:id attributes referenced throughout.
73-
74-
75-
0.22.1
76-
------
77-
78-
* bugfix: workaround for resolver error failing to load schemas in some
79-
cases
80-
81-
0.22
82-
----
83-
84-
* New method (:meth:`eulxml.xmlmap.load_xslt`) to load and precompile XSLT
85-
that will be used more than once.
86-
* Re-worked :meth:`eulxml.xmlmap.XmlObject.xsl_transform` to avoid
87-
malloc errors and segmentation faults and to allow using precompiled
88-
XSLT documents.
89-
* Support for float field types in eulxml.xmlmap. Contributed by
90-
`jilott <https://github.com/jilott>`_.
91-
92-
0.21.2
93-
------
94-
95-
* Bug fix: correctly support parameters in
96-
:meth:`eulxml.xmlmap.XmlObject.xsl_transform`
97-
* Automatically encode string parameter values passed to
98-
:meth:`~eulxml.xmlmap.XmlObject.xsl_transform` as
99-
lxml string parameters (:class:`lxml.etree.XSLT.strparam`)
100-
101-
0.21.1
102-
------
103-
104-
* Bug fix: :meth:`eulxml.xmlmap.XmlObject.xsl_transform` now recognizes
105-
text output as a valid, non-empty XSL result
106-
107-
0.21
108-
----
109-
110-
* Add default unicode output of date value for MODS date fields
111-
(:class:`~eulxml.xmlmap.mods.Date` and all date variants)
112-
* Bug fix: :class:`~eulxml.forms.XmlObjectForm` now uses the
113-
field order as defined on the form when updating the XML instance
114-
(fix for XML where schema requires fields in a specific order)
115-
116-
117-
0.20.3
118-
------
119-
120-
* Revert unused namespace cleanup change to serialization it generates
121-
less optimal output in certain cases.
122-
* Minor updates to :mod:`~eulxml.xmlmap.eadmap`:
123-
124-
* Added mapping for `xlink:show` attribute to
125-
:class:`~eulxml.xmlmap.eadmap.DigitalArchivalObject`
126-
* Added mapping for `note` field
127-
:class:`~eulxml.xmlmap.eadmap.Index`
128-
* Changed :class:`~eulxml.xmlmap.eadmap.Note` paragraph content from
129-
string list to node list, to support formatting.
130-
* Added mapping for ``processinfo`` to
131-
:class:`~eulxml.xmlmap.eadmap.ArchivalDescription` and
132-
:class:`~eulxml.xmlmap.eadmap.Component`
133-
134-
0.20.2
135-
-------
136-
137-
* Unused namespaces will now be cleaned up before serialization in
138-
:meth:`eulxml.xmlmap.XmlObject.serialize` and
139-
:meth:`eulxml.xmlmap.XmlObject.serializeDocument`
140-
* :mod:`eulxml.xmlmap.eadmap` have been updated with root element names
141-
where possible, to better support using :mod:`~eulxml.xmlmap.eadmap` to
142-
update or modify EAD documents.
143-
144-
0.20.1
145-
-------
146-
147-
* Adjust :mod:`eulxml.xmlmap` fields for better results when inspected by
148-
sphinx autodoc or other similar tools.
149-
150-
0.20.0
151-
-------
152-
153-
* Update :mod:`eulxml.xmlmap.mods` with support for id attribute on top-level MODS
154-
element. Contributed by `bcail <https://github.com/bcail>`_.
155-
* Update :mod:`eulxml.xmlmap.eadmap` with support for digital archival object tags.
156-
* Add :class:`eulxml.xmlmap.fields.DateField` to support date fields
157-
separately from :class:`eulxml.xmlmap.fields.DateTimeField`; also includes
158-
minimal support for date fields in :class:`eulxml.forms.xmlobject.XmlObjectForm`.
159-
160-
0.19.1
161-
-------
162-
163-
* Pinned MODS version to 3.4 to guard against new versions of the schema breaking validation
164-
165-
0.19.0
166-
-------
167-
168-
* Corrected a minor bug where schema validation errors were not cleared between
169-
multiple validations.
170-
* To avoid permission denied warning for auto-generated parser files,
171-
parsetab files are now created in python tempdir if the running user
172-
doesn't have write permission in the package installation directory.
173-
[`Issue 1 <https://github.com/emory-libraries/eulxml/issues/1>`_]
174-
* When an XSLT transformation results in an empty document,
175-
:meth:`eulxml.xmlap.XmlObject.xsl_transform` now returns None.
176-
[`Issue 6 <https://github.com/emory-libraries/eulxml/issues/6>`_]
177-
* Development requirements can now be installed as an optional requirement
178-
of the eulxml package (``pip install "eulxml[dev]"``).
179-
* Unit tests have been updated to use :mod:`nose`
180-
* New functionality in :mod:`eulxml.xmlmap.cerp` for parsing email dates
181-
and generating CERP xml from a Python email message object.
182-
183-
184-
0.18.0 - Formset Ordering and DateTime
185-
--------------------------------------
186-
187-
* :class:`eulxml.forms.xmlobject.XmlObjectForm` formsets now support
188-
``can_order``.
189-
* :class:`eulxml.xmlmap.fields.DateTimeField` is now included in
190-
available :mod:`eulxml.xmlmap` fields. This replaces the previously
191-
officially-unreleased, under-documented and -tested and misnamed
192-
``DateField``. Date-time format handling and whitespace
193-
normalization contributed by `jheath- <https://github.com/jheath->`_.
194-
195-
196-
0.17.1 - Bugfix Release
197-
-----------------------
198-
199-
* Fixed an error in eulxml.xpath parse that resulted in parse errors
200-
when other lexers are defined.
201-
202-
203-
0.17.0 - Minor Enhancements
204-
---------------------------
205-
206-
* :class:`eulxml.xmlmap.XmlObject` now supports lazy-loading for XSD
207-
Schemas. To take advantage of this feature,
208-
:class:`~eulxml.xmlmap.XmlObject` subclasses should define an
209-
``XSD_SCHEMA`` location but should not set an ``xmlschema``.
210-
* When :ref:`field <xmlmap-field>` mapped on a
211-
:class:`eulxml.xmlmap.XmlObject` is deleted, any XPath predicates
212-
that could have been automatically constructed when setting the
213-
value will be deleted from the :class:`~eulxml.xmlmap.XmlObject`
214-
where possible, if they are otherwise empty.
215-
216-
217-
0.16.0 - MODS and PREMIS
218-
------------------------
219-
220-
* Add basic support for `MODS <http://www.loc.gov/standards/mods/>`_ in
221-
:mod:`eulxml.xmlmap.mods`.
222-
* Add basic support for `PREMIS <http://www.loc.gov/standards/premis/>`_ in
223-
:mod:`eulxml.xmlmap.premis`.
224-
* Minor logging and error handling improvements.
225-
226-
0.15.3 - Minor Enhancement
227-
--------------------------
228-
229-
* Downgrade the lack of an HTTP_PROXY set in the environment from a
230-
RuntimeError to a Warning with schema validation disabled.
231-
232-
0.15.2 - Bugfix Release
233-
-----------------------
234-
235-
* Fixed an error in the dependency structure that prevented the package from
236-
being used after installation through PyPI.
237-
238-
0.15.1 - Bugfix Release
239-
-----------------------
240-
241-
* Fixed an error in the dependency structure that prevented the package from
242-
being installed through PyPI.
243-
244-
0.15.0 - Initial Release
245-
------------------------
246-
247-
* Split out xml-related components (:mod:`~eulxml.xpath`,
248-
:mod:`~eulxml.xmlmap`, and :mod:`~eulxml.forms`) from :mod:`eulcore`
249-
into :mod:`eulxml` for easier re-use.
11+
* Fork `eulxml <https://github.com/emory-libraries/eulxml>`_
12+
package from version `1.1.3` with the new name `neuxml`
13+
* Remove `forms` submodule and drop Django requirements
14+
* Add GitHub workflow for pypi publication
15+
* Update for Python 3.12 compatibility

0 commit comments

Comments
 (0)