bibtexparser 1.4.2__tar.gz → 1.4.4__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.
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/CODE_OF_CONDUCT.md +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/CONTRIBUTING.md +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/COPYING +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/MANIFEST.in +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/PKG-INFO +66 -67
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/README.rst +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser/__init__.py +1 -1
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser/bibdatabase.py +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser/bibtexexpression.py +32 -24
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser/bparser.py +6 -6
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser/bwriter.py +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser/customization.py +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser/latexenc.py +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser.egg-info/PKG-INFO +66 -67
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser.egg-info/SOURCES.txt +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser.egg-info/dependency_links.txt +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser.egg-info/requires.txt +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/bibtexparser.egg-info/top_level.txt +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/Makefile +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/bibtex_conv.rst +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/bibtexparser.rst +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/conf.py +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/demo.py +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/index.rst +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/install.rst +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/logging.rst +0 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/docs/source/tutorial.rst +0 -0
- bibtexparser-1.4.4/requirements.txt +1 -0
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/setup.cfg +4 -4
- {bibtexparser-1.4.2 → bibtexparser-1.4.4}/setup.py +0 -0
- bibtexparser-1.4.2/requirements.txt +0 -1
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,67 +1,66 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: bibtexparser
|
|
3
|
-
Version: 1.4.
|
|
4
|
-
Summary: Bibtex parser for python 3
|
|
5
|
-
Home-page: https://github.com/sciunto-org/python-bibtexparser
|
|
6
|
-
Author: Francois Boulogne and other contributors
|
|
7
|
-
Author-email: code@mweiss.ch
|
|
8
|
-
License: LGPLv3 or BSD
|
|
9
|
-
Description-Content-Type: text/x-rst
|
|
10
|
-
License-File: COPYING
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
Check out the `v2 dev branch <https://github.com/sciunto-org/python-bibtexparser/tree/v2>`_ and the `v2 coordination issue <https://github.com/sciunto-org/python-bibtexparser/issues/318>`_ to get a sneak preview. Also - if you're keen - we're always looking for contributors. Do not hesitate to get in contact with us.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: bibtexparser
|
|
3
|
+
Version: 1.4.4
|
|
4
|
+
Summary: Bibtex parser for python 3
|
|
5
|
+
Home-page: https://github.com/sciunto-org/python-bibtexparser
|
|
6
|
+
Author: Francois Boulogne and other contributors
|
|
7
|
+
Author-email: code@mweiss.ch
|
|
8
|
+
License: LGPLv3 or BSD
|
|
9
|
+
Description-Content-Type: text/x-rst
|
|
10
|
+
License-File: COPYING
|
|
11
|
+
|
|
12
|
+
python-bibtexparser
|
|
13
|
+
===================
|
|
14
|
+
|
|
15
|
+
Python 3 library to parse `bibtex <https://en.wikipedia.org/wiki/BibTeX>`_ files.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
.. contents::
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
Documentation
|
|
22
|
+
-------------
|
|
23
|
+
|
|
24
|
+
Our documentation includes the installation procedure, a tutorial, the API and advices to report a bug:
|
|
25
|
+
`Documentation on readthedocs.io <https://bibtexparser.readthedocs.io/>`_
|
|
26
|
+
|
|
27
|
+
Upgrading
|
|
28
|
+
---------
|
|
29
|
+
|
|
30
|
+
Please, read the changelog before upgrading regarding API modifications.
|
|
31
|
+
|
|
32
|
+
License
|
|
33
|
+
-------
|
|
34
|
+
|
|
35
|
+
Dual license (at your choice):
|
|
36
|
+
|
|
37
|
+
* LGPLv3.
|
|
38
|
+
* BSD
|
|
39
|
+
|
|
40
|
+
See COPYING for details.
|
|
41
|
+
|
|
42
|
+
History and evolutions
|
|
43
|
+
----------------------
|
|
44
|
+
|
|
45
|
+
The original source code was part of bibserver from `OKFN <http://github.com/okfn/bibserver>`_. This project is released under the AGPLv3. OKFN and the original authors kindly provided the permission to use a subpart of their project (ie the bibtex parser) under LGPLv3. Many thanks to them!
|
|
46
|
+
|
|
47
|
+
The parser evolved to a new core based on pyparsing.
|
|
48
|
+
|
|
49
|
+
Since 2022, after a long stale period, this library has a new maintainer (`@MiWeiss <https://github.com/MiWeiss>`_).
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
`v2` Announcement
|
|
53
|
+
-----------------
|
|
54
|
+
|
|
55
|
+
Version 1.x, is trusted and used by more than 1300 projects, with much of its code being ~10 years old. Our primary objective in maintaining v1.x is to provide stability and backwards compatibility to these projects - such that they can safely and easily migrate to new versions.
|
|
56
|
+
|
|
57
|
+
Still, there's much room for large-scale improvements and changes to modernize bibtexparser. Hence, we are working on a new version 2.0.0 which is a complete rewrite of the library, providing amongst other the following advantages:
|
|
58
|
+
|
|
59
|
+
- Order of magnitudes faster
|
|
60
|
+
- Type-Hints and extensive documentation
|
|
61
|
+
- Easily customizable parsing **and** writing
|
|
62
|
+
- Access to raw, unparsed bibtex.
|
|
63
|
+
- Fault-Tolerant: Able to parse files with syntax errors
|
|
64
|
+
- Massively simplified, robuster handling of de- and encoding (special chars, ...).
|
|
65
|
+
|
|
66
|
+
Check out the `v2 dev branch <https://github.com/sciunto-org/python-bibtexparser/tree/v2>`_ and the `v2 coordination issue <https://github.com/sciunto-org/python-bibtexparser/issues/318>`_ to get a sneak preview. Also - if you're keen - we're always looking for contributors. Do not hesitate to get in contact with us.
|
|
File without changes
|
|
@@ -25,7 +25,7 @@ __all__ = [
|
|
|
25
25
|
'loads', 'load', 'dumps', 'dump', 'bibdatabase',
|
|
26
26
|
'bparser', 'bwriter', 'bibtexexpression', 'latexenc', 'customization',
|
|
27
27
|
]
|
|
28
|
-
__version__ = '1.4.
|
|
28
|
+
__version__ = '1.4.4'
|
|
29
29
|
|
|
30
30
|
from . import bibdatabase, bibtexexpression, bparser, bwriter, latexenc, customization
|
|
31
31
|
|
|
File without changes
|
|
@@ -29,7 +29,7 @@ def add_logger_parse_action(expr, log_func):
|
|
|
29
29
|
"""Register a callback on expression parsing with the adequate message."""
|
|
30
30
|
def action(s, l, t):
|
|
31
31
|
log_func("Found {}: {}".format(expr.resultsName, t))
|
|
32
|
-
expr.
|
|
32
|
+
expr.add_parse_action(action)
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
# Parse action helpers
|
|
@@ -111,7 +111,7 @@ class BibtexExpression(object):
|
|
|
111
111
|
# String names
|
|
112
112
|
string_name = pp.Word(pp.alphanums + '_-:')('StringName')
|
|
113
113
|
self.set_string_name_parse_action(lambda s, l, t: None)
|
|
114
|
-
string_name.
|
|
114
|
+
string_name.add_parse_action(self._string_name_parse_action)
|
|
115
115
|
|
|
116
116
|
# Values inside bibtex fields
|
|
117
117
|
# Values can be integer or string expressions. The latter may use
|
|
@@ -123,27 +123,27 @@ class BibtexExpression(object):
|
|
|
123
123
|
# Braced values: braced values can contain nested (but balanced) braces
|
|
124
124
|
braced_value_content = pp.CharsNotIn('{}')
|
|
125
125
|
braced_value = pp.Forward() # Recursive definition for nested braces
|
|
126
|
-
braced_value <<= pp.
|
|
126
|
+
braced_value <<= pp.original_text_for(
|
|
127
127
|
'{' + pp.ZeroOrMore(braced_value | braced_value_content) + '}'
|
|
128
128
|
)('BracedValue')
|
|
129
|
-
braced_value.
|
|
129
|
+
braced_value.set_parse_action(remove_braces)
|
|
130
130
|
# TODO add ignore for "\}" and "\{" ?
|
|
131
131
|
# TODO @ are not parsed by bibtex in braces
|
|
132
132
|
|
|
133
133
|
# Quoted values: may contain braced content with balanced braces
|
|
134
|
-
brace_in_quoted = pp.
|
|
134
|
+
brace_in_quoted = pp.nested_expr('{', '}', ignore_expr=None)
|
|
135
135
|
text_in_quoted = pp.CharsNotIn('"{}')
|
|
136
136
|
# (quotes should be escaped by braces in quoted value)
|
|
137
|
-
quoted_value = pp.
|
|
137
|
+
quoted_value = pp.original_text_for(
|
|
138
138
|
'"' + pp.ZeroOrMore(text_in_quoted | brace_in_quoted) + '"'
|
|
139
139
|
)('QuotedValue')
|
|
140
|
-
quoted_value.
|
|
140
|
+
quoted_value.add_parse_action(pp.remove_quotes)
|
|
141
141
|
|
|
142
142
|
# String expressions
|
|
143
|
-
string_expr = pp.
|
|
143
|
+
string_expr = pp.DelimitedList(
|
|
144
144
|
(quoted_value | braced_value | string_name), delim='#'
|
|
145
145
|
)('StringExpression')
|
|
146
|
-
string_expr.
|
|
146
|
+
string_expr.add_parse_action(self._string_expr_parse_action)
|
|
147
147
|
|
|
148
148
|
value = (integer | string_expr)('Value')
|
|
149
149
|
|
|
@@ -151,7 +151,7 @@ class BibtexExpression(object):
|
|
|
151
151
|
|
|
152
152
|
# @EntryType { ...
|
|
153
153
|
entry_type = (pp.Suppress('@') + pp.Word(pp.alphas))('EntryType')
|
|
154
|
-
entry_type.
|
|
154
|
+
entry_type.set_parse_action(first_token)
|
|
155
155
|
|
|
156
156
|
# Entry key: any character up to a ',' without leading and trailing
|
|
157
157
|
# spaces. Also exclude spaces and prevent it from being empty.
|
|
@@ -175,20 +175,20 @@ class BibtexExpression(object):
|
|
|
175
175
|
msg="Whitespace not allowed in citekeys.")
|
|
176
176
|
return key
|
|
177
177
|
|
|
178
|
-
key.
|
|
178
|
+
key.set_parse_action(citekeyParseAction)
|
|
179
179
|
|
|
180
180
|
# Field name: word of letters, digits, dashes and underscores
|
|
181
181
|
field_name = pp.Word(pp.alphanums + '_-().+')('FieldName')
|
|
182
|
-
field_name.
|
|
182
|
+
field_name.set_parse_action(first_token)
|
|
183
183
|
|
|
184
184
|
# Field: field_name = value
|
|
185
185
|
field = pp.Group(field_name + pp.Suppress('=') + value)('Field')
|
|
186
|
-
field.
|
|
186
|
+
field.set_parse_action(field_to_pair)
|
|
187
187
|
|
|
188
188
|
# List of fields: comma separeted fields
|
|
189
|
-
field_list = (pp.
|
|
189
|
+
field_list = (pp.DelimitedList(field) + pp.Suppress(pp.Optional(','))
|
|
190
190
|
)('Fields')
|
|
191
|
-
field_list.
|
|
191
|
+
field_list.set_parse_action(
|
|
192
192
|
lambda s, l, t: {k: v for (k, v) in reversed(t.get('Fields'))})
|
|
193
193
|
|
|
194
194
|
# Entry: type, key, and fields
|
|
@@ -204,10 +204,10 @@ class BibtexExpression(object):
|
|
|
204
204
|
) | pp.StringEnd()
|
|
205
205
|
self.explicit_comment = (
|
|
206
206
|
pp.Suppress(comment_line_start) +
|
|
207
|
-
pp.
|
|
208
|
-
|
|
209
|
-
self.explicit_comment.
|
|
210
|
-
self.explicit_comment.
|
|
207
|
+
pp.original_text_for(pp.SkipTo(not_an_implicit_comment),
|
|
208
|
+
as_string=True))('ExplicitComment')
|
|
209
|
+
self.explicit_comment.add_parse_action(remove_trailing_newlines)
|
|
210
|
+
self.explicit_comment.add_parse_action(remove_braces)
|
|
211
211
|
# Previous implementation included comment until next '}'.
|
|
212
212
|
# This is however not inline with bibtex behavior that is to only
|
|
213
213
|
# ignore until EOL. Brace stipping is arbitrary here but avoids
|
|
@@ -219,10 +219,10 @@ class BibtexExpression(object):
|
|
|
219
219
|
raise pp.ParseException("Match must not be empty.")
|
|
220
220
|
|
|
221
221
|
# Implicit comments: not anything else
|
|
222
|
-
self.implicit_comment = pp.
|
|
223
|
-
pp.SkipTo(not_an_implicit_comment).
|
|
224
|
-
|
|
225
|
-
self.implicit_comment.
|
|
222
|
+
self.implicit_comment = pp.original_text_for(
|
|
223
|
+
pp.SkipTo(not_an_implicit_comment).set_parse_action(mustNotBeEmpty),
|
|
224
|
+
as_string=True)('ImplicitComment')
|
|
225
|
+
self.implicit_comment.add_parse_action(remove_trailing_newlines)
|
|
226
226
|
|
|
227
227
|
# String definition
|
|
228
228
|
self.string_def = (pp.Suppress(string_def_start) + in_braces_or_pars(
|
|
@@ -274,5 +274,13 @@ class BibtexExpression(object):
|
|
|
274
274
|
def _string_expr_parse_action(self, s, l, t):
|
|
275
275
|
return BibDataStringExpression.expression_if_needed(t)
|
|
276
276
|
|
|
277
|
+
def parse_file(self, file_obj):
|
|
278
|
+
"""Execute parse expression on a file object"""
|
|
279
|
+
return self.main_expression.parse_file(file_obj, parse_all=True)
|
|
280
|
+
|
|
277
281
|
def parseFile(self, file_obj):
|
|
278
|
-
|
|
282
|
+
"""Execute parse expression on a file object
|
|
283
|
+
|
|
284
|
+
Alias for parse_file()
|
|
285
|
+
"""
|
|
286
|
+
return self.parse_file(file_obj)
|
|
@@ -159,7 +159,7 @@ class BibTexParser(object):
|
|
|
159
159
|
|
|
160
160
|
bibtex_file_obj = self._bibtex_file_obj(bibtex_str)
|
|
161
161
|
try:
|
|
162
|
-
self._expr.
|
|
162
|
+
self._expr.parse_file(bibtex_file_obj)
|
|
163
163
|
except self._expr.ParseException as exc:
|
|
164
164
|
logger.error("Could not parse properly, starting at %s", exc.line)
|
|
165
165
|
if not partial:
|
|
@@ -198,20 +198,20 @@ class BibTexParser(object):
|
|
|
198
198
|
self._expr.add_log_function(logger.debug)
|
|
199
199
|
|
|
200
200
|
# Set actions
|
|
201
|
-
self._expr.entry.
|
|
201
|
+
self._expr.entry.add_parse_action(
|
|
202
202
|
lambda s, l, t: self._add_entry(
|
|
203
203
|
t.get('EntryType'), t.get('Key'), t.get('Fields'))
|
|
204
204
|
)
|
|
205
|
-
self._expr.implicit_comment.
|
|
205
|
+
self._expr.implicit_comment.add_parse_action(
|
|
206
206
|
lambda s, l, t: self._add_comment(t[0])
|
|
207
207
|
)
|
|
208
|
-
self._expr.explicit_comment.
|
|
208
|
+
self._expr.explicit_comment.add_parse_action(
|
|
209
209
|
lambda s, l, t: self._add_comment(t[0])
|
|
210
210
|
)
|
|
211
|
-
self._expr.preamble_decl.
|
|
211
|
+
self._expr.preamble_decl.add_parse_action(
|
|
212
212
|
lambda s, l, t: self._add_preamble(t[0])
|
|
213
213
|
)
|
|
214
|
-
self._expr.string_def.
|
|
214
|
+
self._expr.string_def.add_parse_action(
|
|
215
215
|
lambda s, l, t: self._add_string(t['StringName'].name,
|
|
216
216
|
t['StringValue'])
|
|
217
217
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,67 +1,66 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: bibtexparser
|
|
3
|
-
Version: 1.4.
|
|
4
|
-
Summary: Bibtex parser for python 3
|
|
5
|
-
Home-page: https://github.com/sciunto-org/python-bibtexparser
|
|
6
|
-
Author: Francois Boulogne and other contributors
|
|
7
|
-
Author-email: code@mweiss.ch
|
|
8
|
-
License: LGPLv3 or BSD
|
|
9
|
-
Description-Content-Type: text/x-rst
|
|
10
|
-
License-File: COPYING
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
Check out the `v2 dev branch <https://github.com/sciunto-org/python-bibtexparser/tree/v2>`_ and the `v2 coordination issue <https://github.com/sciunto-org/python-bibtexparser/issues/318>`_ to get a sneak preview. Also - if you're keen - we're always looking for contributors. Do not hesitate to get in contact with us.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: bibtexparser
|
|
3
|
+
Version: 1.4.4
|
|
4
|
+
Summary: Bibtex parser for python 3
|
|
5
|
+
Home-page: https://github.com/sciunto-org/python-bibtexparser
|
|
6
|
+
Author: Francois Boulogne and other contributors
|
|
7
|
+
Author-email: code@mweiss.ch
|
|
8
|
+
License: LGPLv3 or BSD
|
|
9
|
+
Description-Content-Type: text/x-rst
|
|
10
|
+
License-File: COPYING
|
|
11
|
+
|
|
12
|
+
python-bibtexparser
|
|
13
|
+
===================
|
|
14
|
+
|
|
15
|
+
Python 3 library to parse `bibtex <https://en.wikipedia.org/wiki/BibTeX>`_ files.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
.. contents::
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
Documentation
|
|
22
|
+
-------------
|
|
23
|
+
|
|
24
|
+
Our documentation includes the installation procedure, a tutorial, the API and advices to report a bug:
|
|
25
|
+
`Documentation on readthedocs.io <https://bibtexparser.readthedocs.io/>`_
|
|
26
|
+
|
|
27
|
+
Upgrading
|
|
28
|
+
---------
|
|
29
|
+
|
|
30
|
+
Please, read the changelog before upgrading regarding API modifications.
|
|
31
|
+
|
|
32
|
+
License
|
|
33
|
+
-------
|
|
34
|
+
|
|
35
|
+
Dual license (at your choice):
|
|
36
|
+
|
|
37
|
+
* LGPLv3.
|
|
38
|
+
* BSD
|
|
39
|
+
|
|
40
|
+
See COPYING for details.
|
|
41
|
+
|
|
42
|
+
History and evolutions
|
|
43
|
+
----------------------
|
|
44
|
+
|
|
45
|
+
The original source code was part of bibserver from `OKFN <http://github.com/okfn/bibserver>`_. This project is released under the AGPLv3. OKFN and the original authors kindly provided the permission to use a subpart of their project (ie the bibtex parser) under LGPLv3. Many thanks to them!
|
|
46
|
+
|
|
47
|
+
The parser evolved to a new core based on pyparsing.
|
|
48
|
+
|
|
49
|
+
Since 2022, after a long stale period, this library has a new maintainer (`@MiWeiss <https://github.com/MiWeiss>`_).
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
`v2` Announcement
|
|
53
|
+
-----------------
|
|
54
|
+
|
|
55
|
+
Version 1.x, is trusted and used by more than 1300 projects, with much of its code being ~10 years old. Our primary objective in maintaining v1.x is to provide stability and backwards compatibility to these projects - such that they can safely and easily migrate to new versions.
|
|
56
|
+
|
|
57
|
+
Still, there's much room for large-scale improvements and changes to modernize bibtexparser. Hence, we are working on a new version 2.0.0 which is a complete rewrite of the library, providing amongst other the following advantages:
|
|
58
|
+
|
|
59
|
+
- Order of magnitudes faster
|
|
60
|
+
- Type-Hints and extensive documentation
|
|
61
|
+
- Easily customizable parsing **and** writing
|
|
62
|
+
- Access to raw, unparsed bibtex.
|
|
63
|
+
- Fault-Tolerant: Able to parse files with syntax errors
|
|
64
|
+
- Massively simplified, robuster handling of de- and encoding (special chars, ...).
|
|
65
|
+
|
|
66
|
+
Check out the `v2 dev branch <https://github.com/sciunto-org/python-bibtexparser/tree/v2>`_ and the `v2 coordination issue <https://github.com/sciunto-org/python-bibtexparser/issues/318>`_ to get a sneak preview. Also - if you're keen - we're always looking for contributors. Do not hesitate to get in contact with us.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pyparsing>=3.0.0
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[egg_info]
|
|
2
|
-
tag_build =
|
|
3
|
-
tag_date = 0
|
|
4
|
-
|
|
1
|
+
[egg_info]
|
|
2
|
+
tag_build =
|
|
3
|
+
tag_date = 0
|
|
4
|
+
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pyparsing>=2.0.3
|