@@ -8,9 +8,6 @@ pyexcel-ods3 - Let you focus on data, instead of ods format
88.. image :: https://raw.githubusercontent.com/pyexcel/pyexcel-mobans/master/images/awesome-badge.svg
99 :target: https://awesome-python.com/#specific-formats-processing
1010
11- .. image :: https://github.com/pyexcel/pyexcel-ods3/workflows/run_tests/badge.svg
12- :target: http://github.com/pyexcel/pyexcel-ods3/actions
13-
1411.. image :: https://codecov.io/gh/pyexcel/pyexcel-ods3/branch/master/graph/badge.svg
1512 :target: https://codecov.io/gh/pyexcel/pyexcel-ods3
1613
@@ -20,6 +17,7 @@ pyexcel-ods3 - Let you focus on data, instead of ods format
2017.. image :: https://anaconda.org/conda-forge/pyexcel-ods3/badges/version.svg
2118 :target: https://anaconda.org/conda-forge/pyexcel-ods3
2219
20+
2321.. image :: https://pepy.tech/badge/pyexcel-ods3/month
2422 :target: https://pepy.tech/project/pyexcel-ods3
2523
@@ -45,19 +43,11 @@ that has no external dependency but do ods reading only
4543Support the project
4644================================================================================
4745
48- If your company has embedded pyexcel and its components into a revenue generating
49- product, please support me on github, `patreon <https://www.patreon.com/bePatron?u=5537627 >`_
50- or `bounty source <https://salt.bountysource.com/teams/chfw-pyexcel >`_ to maintain
51- the project and develop it further.
52-
53- If you are an individual, you are welcome to support me too and for however long
54- you feel like. As my backer, you will receive
55- `early access to pyexcel related contents <https://www.patreon.com/pyexcel/posts >`_.
56-
57- And your issues will get prioritized if you would like to become my patreon as `pyexcel pro user `.
58-
59- With your financial support, I will be able to invest
60- a little bit more time in coding, documentation and writing interesting posts.
46+ If your company uses pyexcel and its components in a revenue-generating product,
47+ please consider supporting the project on GitHub or
48+ `Patreon <https://www.patreon.com/bePatron?u=5537627 >`_. Your financial
49+ support will enable me to dedicate more time to coding, improving documentation,
50+ and creating engaging content.
6151
6252
6353Known constraints
@@ -97,15 +87,8 @@ As a standalone library
9787
9888 >>> import os
9989 >>> import sys
100- >>> if sys.version_info[0 ] < 3 :
101- ... from StringIO import StringIO
102- ... else :
103- ... from io import BytesIO as StringIO
104- >>> PY2 = sys.version_info[0 ] == 2
105- >>> if PY2 and sys.version_info[1 ] < 7 :
106- ... from ordereddict import OrderedDict
107- ... else :
108- ... from collections import OrderedDict
90+ >>> from io import BytesIO
91+ >>> from collections import OrderedDict
10992
11093
11194Write to an ods file
@@ -149,7 +132,7 @@ Here's the sample code to write a dictionary to an ods file:
149132 >> > data = OrderedDict()
150133 >> > data.update({" Sheet 1" : [[1 , 2 , 3 ], [4 , 5 , 6 ]]})
151134 >> > data.update({" Sheet 2" : [[7 , 8 , 9 ], [10 , 11 , 12 ]]})
152- >> > io = StringIO ()
135+ >> > io = BytesIO ()
153136 >> > save_data(io, data)
154137 >> > # do something with the io
155138 >> > # In reality, you might give it to your http response
@@ -305,18 +288,18 @@ You got to wrap the binary content with stream to get ods working:
305288 + ------ -+ ------ -+ ------ -+
306289
307290
308- Writing to a StringIO instance
291+ Writing to a BytesIO instance
309292********************************************************************************
310293
311- You need to pass a StringIO instance to Writer:
294+ You need to pass a BytesIO instance to Writer:
312295
313296.. code-block :: python
314297
315298 >> > data = [
316299 ... [1 , 2 , 3 ],
317300 ... [4 , 5 , 6 ]
318301 ... ]
319- >> > io = StringIO ()
302+ >> > io = BytesIO ()
320303 >> > sheet = pe.Sheet(data)
321304 >> > io = sheet.save_to_memory(" ods" , io)
322305 >> > # then do something with io
@@ -353,15 +336,18 @@ and update changelog.yml
353336.. note ::
354337
355338 As to rnd_requirements.txt, usually, it is created when a dependent
356- library is not released. Once the dependecy is installed
339+ library is not released. Once the dependency is installed
357340 (will be released), the future
358341 version of the dependency in the requirements.txt will be valid.
359342
360343
361344How to test your contribution
362- ------------------------------
345+ --------------------------------------------------------------------------------
363346
364- Although `nose ` and `doctest ` are both used in code testing, it is adviable that unit tests are put in tests. `doctest ` is incorporated only to make sure the code examples in documentation remain valid across different development releases.
347+ Although `nose ` and `doctest ` are both used in code testing, it is advisable
348+ that unit tests are put in tests. `doctest ` is incorporated only to make sure
349+ the code examples in documentation remain valid across different development
350+ releases.
365351
366352On Linux/Unix systems, please launch your tests like this::
367353
0 commit comments