Skip to content

Commit f3a44fe

Browse files
committed
📚 update project meta data
1 parent 150ad7a commit f3a44fe

File tree

7 files changed

+63
-67
lines changed

7 files changed

+63
-67
lines changed

.github/workflows/lint.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ jobs:
1111
- name: Set up Python
1212
uses: actions/setup-python@v1
1313
with:
14-
python-version: 3.8
14+
python-version: 3.11
1515
- name: lint
1616
run: |
17-
pip install flake8
18-
pip install -r tests/requirements.txt
17+
pip --use-deprecated=legacy-resolver install flake8
18+
pip --use-deprecated=legacy-resolver install -r tests/requirements.txt
1919
flake8 --exclude=.moban.d,docs,setup.py --builtins=unicode,xrange,long .
2020
python setup.py checkdocs

.github/workflows/moban-update.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,22 @@ jobs:
88
- uses: actions/checkout@v2
99
with:
1010
ref: ${{ github.head_ref }}
11+
token: ${{ secrets.PAT }}
1112
- name: Set up Python
1213
uses: actions/setup-python@v1
1314
with:
14-
python-version: '3.7'
15+
python-version: '3.11'
1516
- name: check changes
1617
run: |
17-
pip install moban gitfs2 pypifs moban-jinja2-github moban-ansible
18+
pip install markupsafe==2.0.1
19+
pip install ruamel.yaml moban gitfs2 pypifs moban-jinja2-github moban-ansible
1820
moban
1921
git status
2022
git diff --exit-code
2123
- name: Auto-commit
2224
if: failure()
23-
uses: docker://cdssnc/auto-commit-github-action
24-
env:
25-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25+
uses: stefanzweifel/git-auto-commit-action@v4
2626
with:
27-
args: >-
27+
commit_message: >-
2828
This is an auto-commit, updating project meta data,
2929
such as changelog.rst, contributors.rst

.github/workflows/pythonpublish.yml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,16 @@ on:
55
types: [created]
66

77
jobs:
8-
deploy:
8+
pypi-publish:
9+
name: upload release to PyPI
910
runs-on: ubuntu-latest
11+
# Specifying a GitHub environment is optional, but strongly encouraged
12+
environment: pypi
13+
permissions:
14+
# IMPORTANT: this permission is mandatory for trusted publishing
15+
id-token: write
1016
steps:
17+
# retrieve your distributions here
1118
- uses: actions/checkout@v1
1219
- name: Set up Python
1320
uses: actions/setup-python@v1
@@ -16,11 +23,9 @@ jobs:
1623
- name: Install dependencies
1724
run: |
1825
python -m pip install --upgrade pip
19-
pip install setuptools wheel twine
20-
- name: Build and publish
21-
env:
22-
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
23-
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
26+
pip install setuptools wheel
27+
- name: Build
2428
run: |
2529
python setup.py sdist bdist_wheel
26-
twine upload dist/*
30+
- name: Publish package distributions to PyPI
31+
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/tests.yml

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,31 @@
1-
name: run_tests
1+
name: Run unit tests on Windows, Ubuntu and Mac
22

33
on: [push, pull_request]
44

55
jobs:
6+
67
test:
8+
name: ${{ matrix.os }} / ${{ matrix.python_version }}
9+
runs-on: ${{ matrix.os }}-latest
710
strategy:
8-
fail-fast: false
9-
matrix:
10-
python-version: [3.6, 3.7, 3.8, 3.9]
11-
os: [macOs-latest, ubuntu-latest, windows-latest]
11+
fail-fast: false
12+
matrix:
13+
os: [Ubuntu]
14+
python_version: ["3.9.16"]
1215

13-
runs-on: ${{ matrix.os }}
14-
name: run tests
1516
steps:
1617
- uses: actions/checkout@v2
1718
- name: Set up Python
18-
uses: actions/setup-python@v1
19+
uses: actions/setup-python@v5
1920
with:
20-
python-version: ${{ matrix.python-version }}
21+
python-version: ${{ matrix.python_version }}
22+
architecture: x64
23+
2124
- name: install
2225
run: |
23-
pip install -r requirements.txt
24-
pip install -r tests/requirements.txt
26+
pip --use-deprecated=legacy-resolver install -r requirements.txt
27+
pip --use-deprecated=legacy-resolver install -r tests/requirements.txt
28+
pip --use-deprecated=legacy-resolver install -r rnd_requirements.txt
2529
- name: test
2630
run: |
2731
pip freeze

LICENSE

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2015-2020 by Onni Software Ltd. and its contributors
1+
Copyright (c) 2015-2025 by Onni Software Ltd. and its contributors
22
All rights reserved.
33

44
Redistribution and use in source and binary forms of the software as well
@@ -13,7 +13,7 @@ that the following conditions are met:
1313
and/or other materials provided with the distribution.
1414

1515
* Neither the name of 'pyexcel-xlsxw' nor the names of the contributors
16-
may not be used to endorse or promote products derived from this software
16+
may be used to endorse or promote products derived from this software
1717
without specific prior written permission.
1818

1919
THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND

README.rst

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,14 @@ pyexcel-xlsxw - Let you focus on data, instead of xlsx 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-xlsxw/workflows/run_tests/badge.svg
12-
:target: http://github.com/pyexcel/pyexcel-xlsxw/actions
13-
1411
.. image:: https://codecov.io/gh/pyexcel/pyexcel-xlsxw/branch/master/graph/badge.svg
1512
:target: https://codecov.io/gh/pyexcel/pyexcel-xlsxw
1613

1714
.. image:: https://badge.fury.io/py/pyexcel-xlsxw.svg
1815
:target: https://pypi.org/project/pyexcel-xlsxw
1916

2017

18+
2119
.. image:: https://pepy.tech/badge/pyexcel-xlsxw/month
2220
:target: https://pepy.tech/project/pyexcel-xlsxw
2321

@@ -38,19 +36,11 @@ pyexcel-xlsxw - Let you focus on data, instead of xlsx format
3836
Support the project
3937
================================================================================
4038

41-
If your company has embedded pyexcel and its components into a revenue generating
42-
product, please support me on github, `patreon <https://www.patreon.com/bePatron?u=5537627>`_
43-
or `bounty source <https://salt.bountysource.com/teams/chfw-pyexcel>`_ to maintain
44-
the project and develop it further.
45-
46-
If you are an individual, you are welcome to support me too and for however long
47-
you feel like. As my backer, you will receive
48-
`early access to pyexcel related contents <https://www.patreon.com/pyexcel/posts>`_.
49-
50-
And your issues will get prioritized if you would like to become my patreon as `pyexcel pro user`.
51-
52-
With your financial support, I will be able to invest
53-
a little bit more time in coding, documentation and writing interesting posts.
39+
If your company uses pyexcel and its components in a revenue-generating product,
40+
please consider supporting the project on GitHub or
41+
`Patreon <https://www.patreon.com/bePatron?u=5537627>`_. Your financial
42+
support will enable me to dedicate more time to coding, improving documentation,
43+
and creating engaging content.
5444

5545

5646
Known constraints
@@ -90,15 +80,8 @@ As a standalone library
9080

9181
>>> import os
9282
>>> import sys
93-
>>> if sys.version_info[0] < 3:
94-
... from StringIO import StringIO
95-
... else:
96-
... from io import BytesIO as StringIO
97-
>>> PY2 = sys.version_info[0] == 2
98-
>>> if PY2 and sys.version_info[1] < 7:
99-
... from ordereddict import OrderedDict
100-
... else:
101-
... from collections import OrderedDict
83+
>>> from io import BytesIO
84+
>>> from collections import OrderedDict
10285

10386

10487
Write to an xlsx file
@@ -140,7 +123,7 @@ Here's the sample code to write a dictionary to an xlsx file:
140123
>>> data = OrderedDict()
141124
>>> data.update({"Sheet 1": [[1, 2, 3], [4, 5, 6]]})
142125
>>> data.update({"Sheet 2": [[7, 8, 9], [10, 11, 12]]})
143-
>>> io = StringIO()
126+
>>> io = BytesIO()
144127
>>> save_data(io, data)
145128
>>> # do something with the io
146129
>>> # In reality, you might give it to your http response
@@ -200,18 +183,18 @@ Here is the sample code:
200183
>>> sheet.save_as("another_file.xlsx")
201184
202185
203-
Writing to a StringIO instance
186+
Writing to a BytesIO instance
204187
********************************************************************************
205188

206-
You need to pass a StringIO instance to Writer:
189+
You need to pass a BytesIO instance to Writer:
207190

208191
.. code-block:: python
209192
210193
>>> data = [
211194
... [1, 2, 3],
212195
... [4, 5, 6]
213196
... ]
214-
>>> io = StringIO()
197+
>>> io = BytesIO()
215198
>>> sheet = pe.Sheet(data)
216199
>>> io = sheet.save_to_memory("xlsx", io)
217200
>>> # then do something with io
@@ -243,26 +226,29 @@ Then install relevant development requirements:
243226
#. pip install -r tests/requirements.txt
244227

245228
Once you have finished your changes, please provide test case(s), relevant documentation
246-
and update CHANGELOG.rst.
229+
and update changelog.yml
247230

248231
.. note::
249232

250233
As to rnd_requirements.txt, usually, it is created when a dependent
251-
library is not released. Once the dependecy is installed
234+
library is not released. Once the dependency is installed
252235
(will be released), the future
253236
version of the dependency in the requirements.txt will be valid.
254237

255238

256239
How to test your contribution
257-
------------------------------
240+
--------------------------------------------------------------------------------
258241

259-
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.
242+
Although `nose` and `doctest` are both used in code testing, it is advisable
243+
that unit tests are put in tests. `doctest` is incorporated only to make sure
244+
the code examples in documentation remain valid across different development
245+
releases.
260246

261247
On Linux/Unix systems, please launch your tests like this::
262248

263249
$ make
264250

265-
On Windows systems, please issue this command::
251+
On Windows, please issue this command::
266252

267253
> test.bat
268254

@@ -274,7 +260,7 @@ Please run::
274260

275261
$ make format
276262

277-
so as to beautify your code otherwise travis-ci may fail your unit test.
263+
so as to beautify your code otherwise your build may fail your unit test.
278264

279265

280266

docs/source/conf.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
# -- Project information -----------------------------------------------------
2323

2424
project = 'pyexcel-xlsxw'
25-
copyright = '2015-2020 Onni Software Ltd.'
25+
copyright = '2015-2025 Onni Software Ltd.'
2626
author = 'C.W.'
2727
# The short X.Y version
2828
version = '0.6.1'
@@ -57,7 +57,7 @@
5757
# The theme to use for HTML and HTML Help pages. See the documentation for
5858
# a list of builtin themes.
5959
#
60-
html_theme = 'alabaster'
60+
html_theme = 'sphinx_rtd_theme'
6161

6262
# Add any paths that contain custom static files (such as style sheets) here,
6363
# relative to this directory. They are copied after the builtin static files,
@@ -68,7 +68,8 @@
6868
# -- Options for intersphinx extension ---------------------------------------
6969

7070
# Example configuration for intersphinx: refer to the Python standard library.
71-
intersphinx_mapping = {'https://docs.python.org/3/': None}
71+
intersphinx_mapping = {'python': ('https://docs.python.org/3',
72+
'python-inv.txt')}
7273
# TODO: html_theme not configurable upstream
7374
html_theme = 'default'
7475

0 commit comments

Comments
 (0)