diff options
author | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-09 03:32:49 +0000 |
---|---|---|
committer | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-09 03:32:49 +0000 |
commit | bfd2cc3e69af6fdbdc0024834b4ac6a949ca3cc7 (patch) | |
tree | 02bd463bae4745c788bf0fa6ef7cd231e3e9faa2 | |
parent | a0404300fe0cb4a86285fb3d5015cc9efe50d82f (diff) |
automatic import of python-cson
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-cson.spec | 312 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 314 insertions, 0 deletions
@@ -0,0 +1 @@ +/cson-0.8.tar.gz diff --git a/python-cson.spec b/python-cson.spec new file mode 100644 index 0000000..f7070d0 --- /dev/null +++ b/python-cson.spec @@ -0,0 +1,312 @@ +%global _empty_manifest_terminate_build 0 +Name: python-cson +Version: 0.8 +Release: 1 +Summary: A parser for Coffeescript Object Notation (CSON) +License: MIT +URL: https://github.com/avakar/pycson +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8c/14/461bdde1d712dae3c14e139dd4b37085085fd75f01d44f888767bfc6d313/cson-0.8.tar.gz +BuildArch: noarch + + +%description +# pycson + +[](https://travis-ci.org/avakar/pycson) + +A python parser for the Coffeescript Object Notation (CSON). + +## Installation + +The parser is tested on Python 2.7 and 3.5. + + pip install cson + +The interface is the same as for the standard `json` package. + + >>> import cson + >>> cson.loads('a: 1') + {'a': 1} + >>> with open('file.cson', 'rb') as fin: + ... obj = cson.load(fin) + >>> obj + {'a': 1} + +## The language + +There is not formal definition of CSON, only an informal note in [one project][1]'s readme. +Informally, CSON is a JSON, but with a Coffeescript syntax. Sadly [Coffescript][2] has no +format grammar either; it instead has a canonical implementation. + +This means that bugs in the implementation translate into bugs in the language itself. + +Worse, this particular implementation inserts a "rewriter" between the typical +lexer/parser pair, purporting that it makes the grammar simpler. Unfortunately, it adds +weird corner cases to the language.. + +This parser does away with the corner cases, +in exchange for changing the semantics of documents in a few unlikely circumstances. +In other words, some documents may be parsed differently by the Coffescript parser and pycson. + +Here are some important highlights (see the [formal grammar][3] for details). + +* String interpolations (`"#{test}"`) are allowed, but are treated literally. +* Whitespace is ignored in arrays and in objects enclosed in braces + (Coffeescripts requires consistent indentation). +* Unbraced objects greedily consume as many key/value pairs as they can. +* All lines in an unbraced object must have the same indentation. This is the only place + where whitespace is significant. There are no special provisions for partial dedents. + For two lines to have the same indent, their maximal sequences of leading spaces and tabs + must be the same (Coffescript only tracks the number of whitespace characters). +* Unbraced objects that don't start on their own line will never span multiple lines. +* Commas at the end of the line can always be removed without changing the output. + +I believe the above rules make the parse unambiguous. + +This example demonstrates the effect of indentation. + + # An array containing a single element: an object with three keys. + [ + a: 1 + b: 2 + c: 3 + ] + + # An array containing three elements: objects with one key. + [ + a: 1 + b: 2 + c: 3 + ] + + # An array containing two objects, the first of which having one key. + [ a: 1 + b: 2 + c: 3 ] + +Note that pycson can parse all JSON documents correctly (Coffeescript can't because +of whitespace and string interpolations). + + [1]: https://github.com/bevry/cson + [2]: http://coffeescript.org/ + [3]: grammar.md + + +%package -n python3-cson +Summary: A parser for Coffeescript Object Notation (CSON) +Provides: python-cson +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-cson +# pycson + +[](https://travis-ci.org/avakar/pycson) + +A python parser for the Coffeescript Object Notation (CSON). + +## Installation + +The parser is tested on Python 2.7 and 3.5. + + pip install cson + +The interface is the same as for the standard `json` package. + + >>> import cson + >>> cson.loads('a: 1') + {'a': 1} + >>> with open('file.cson', 'rb') as fin: + ... obj = cson.load(fin) + >>> obj + {'a': 1} + +## The language + +There is not formal definition of CSON, only an informal note in [one project][1]'s readme. +Informally, CSON is a JSON, but with a Coffeescript syntax. Sadly [Coffescript][2] has no +format grammar either; it instead has a canonical implementation. + +This means that bugs in the implementation translate into bugs in the language itself. + +Worse, this particular implementation inserts a "rewriter" between the typical +lexer/parser pair, purporting that it makes the grammar simpler. Unfortunately, it adds +weird corner cases to the language.. + +This parser does away with the corner cases, +in exchange for changing the semantics of documents in a few unlikely circumstances. +In other words, some documents may be parsed differently by the Coffescript parser and pycson. + +Here are some important highlights (see the [formal grammar][3] for details). + +* String interpolations (`"#{test}"`) are allowed, but are treated literally. +* Whitespace is ignored in arrays and in objects enclosed in braces + (Coffeescripts requires consistent indentation). +* Unbraced objects greedily consume as many key/value pairs as they can. +* All lines in an unbraced object must have the same indentation. This is the only place + where whitespace is significant. There are no special provisions for partial dedents. + For two lines to have the same indent, their maximal sequences of leading spaces and tabs + must be the same (Coffescript only tracks the number of whitespace characters). +* Unbraced objects that don't start on their own line will never span multiple lines. +* Commas at the end of the line can always be removed without changing the output. + +I believe the above rules make the parse unambiguous. + +This example demonstrates the effect of indentation. + + # An array containing a single element: an object with three keys. + [ + a: 1 + b: 2 + c: 3 + ] + + # An array containing three elements: objects with one key. + [ + a: 1 + b: 2 + c: 3 + ] + + # An array containing two objects, the first of which having one key. + [ a: 1 + b: 2 + c: 3 ] + +Note that pycson can parse all JSON documents correctly (Coffeescript can't because +of whitespace and string interpolations). + + [1]: https://github.com/bevry/cson + [2]: http://coffeescript.org/ + [3]: grammar.md + + +%package help +Summary: Development documents and examples for cson +Provides: python3-cson-doc +%description help +# pycson + +[](https://travis-ci.org/avakar/pycson) + +A python parser for the Coffeescript Object Notation (CSON). + +## Installation + +The parser is tested on Python 2.7 and 3.5. + + pip install cson + +The interface is the same as for the standard `json` package. + + >>> import cson + >>> cson.loads('a: 1') + {'a': 1} + >>> with open('file.cson', 'rb') as fin: + ... obj = cson.load(fin) + >>> obj + {'a': 1} + +## The language + +There is not formal definition of CSON, only an informal note in [one project][1]'s readme. +Informally, CSON is a JSON, but with a Coffeescript syntax. Sadly [Coffescript][2] has no +format grammar either; it instead has a canonical implementation. + +This means that bugs in the implementation translate into bugs in the language itself. + +Worse, this particular implementation inserts a "rewriter" between the typical +lexer/parser pair, purporting that it makes the grammar simpler. Unfortunately, it adds +weird corner cases to the language.. + +This parser does away with the corner cases, +in exchange for changing the semantics of documents in a few unlikely circumstances. +In other words, some documents may be parsed differently by the Coffescript parser and pycson. + +Here are some important highlights (see the [formal grammar][3] for details). + +* String interpolations (`"#{test}"`) are allowed, but are treated literally. +* Whitespace is ignored in arrays and in objects enclosed in braces + (Coffeescripts requires consistent indentation). +* Unbraced objects greedily consume as many key/value pairs as they can. +* All lines in an unbraced object must have the same indentation. This is the only place + where whitespace is significant. There are no special provisions for partial dedents. + For two lines to have the same indent, their maximal sequences of leading spaces and tabs + must be the same (Coffescript only tracks the number of whitespace characters). +* Unbraced objects that don't start on their own line will never span multiple lines. +* Commas at the end of the line can always be removed without changing the output. + +I believe the above rules make the parse unambiguous. + +This example demonstrates the effect of indentation. + + # An array containing a single element: an object with three keys. + [ + a: 1 + b: 2 + c: 3 + ] + + # An array containing three elements: objects with one key. + [ + a: 1 + b: 2 + c: 3 + ] + + # An array containing two objects, the first of which having one key. + [ a: 1 + b: 2 + c: 3 ] + +Note that pycson can parse all JSON documents correctly (Coffeescript can't because +of whitespace and string interpolations). + + [1]: https://github.com/bevry/cson + [2]: http://coffeescript.org/ + [3]: grammar.md + + +%prep +%autosetup -n cson-0.8 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-cson -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu Mar 09 2023 Python_Bot <Python_Bot@openeuler.org> - 0.8-1 +- Package Spec generated @@ -0,0 +1 @@ +02f738b7f765e88b4222fe2126a685db cson-0.8.tar.gz |