Comments (8)
Here is a PR for another tool implementing precisely that, landscapeio/prospector#71
from pydocstyle.
There's tokenize.detect_encoding and in later Python versions, tokenize.open which is probably a lot simpler than that PR 😉
from pydocstyle.
nice hint @The-Compiler, unfortunately tokenize.detect_encoding isn't available in python2.7, presume pep257 aims support for python2.7
from pydocstyle.
I just traced a problem in my plugin based on pydocstyle
to this bit of code:
https://github.com/PyCQA/pydocstyle/blob/2.0.0/src/pydocstyle/checker.py#L23
# If possible (python >= 3.2) use tokenize.open to open files, so PEP 263
# encoding markers are interpreted.
try:
tokenize_open = tk.open
except AttributeError:
tokenize_open = open
Would a backport of tokenize.open
for Python 2 be acceptable here?
Note it seems that because later the contents of the file get executed, it is helpful to also remove/replace the encoding line to avoid triggering SyntaxError: encoding declaration in Unicode string
when passing it to exec(...)
:
https://github.com/PyCQA/pydocstyle/blob/2.0.0/src/pydocstyle/parser.py#L286
try:
compile(src, filename, 'exec')
except SyntaxError as error:
six.raise_from(ParseError(), error)
I'm not proud of this hacked together back port, but it might serve if Python 2.7 support is desired:
peterjc/flake8-rst-docstrings@80697a6
from pydocstyle.
See also pull request #152 which added a test case using # -*- coding: Windows-1255 -*
from pydocstyle.
pycodestyle has code to work around the absence of tokenize.open
. Flake8 has taken and improved it as well.
from pydocstyle.
@sigmavirus24 Can you point me at this code please? And can this issue be closed?
from pydocstyle.
pydocstyle has been using tokenizer.open
when reading source files since 4948f22. This is therefore no longer a problem.
from pydocstyle.
Related Issues (20)
- option to ban `noqa` comments that don't specify a code
- D102 - false positive on overload with comment
- cosmetic bug: wrong version stamp in webpage title: 1.0.0 instead of 2.1.1
- The match-dir parameter is not used. HOT 4
- Not detecting wrong DocStrings HOT 1
- Your website is down - https://pydocstyle.org HOT 3
- Crash with simple f-string HOT 7
- Docs website is down? HOT 1
- sdist: PKG-INFO should list LICENSE-MIT in License-File
- `D300` and `D301` false positives on docstrings with escaped triple quotes in them
- Should `__main__.py` really be considered a public module?
- Option to not report error for empty file HOT 1
- test_simple_fstring and test_fstring_with_args fail with Python 3.12 beta HOT 2
- 6.3.0: incorrect version in pyproject.toml?🤔 HOT 2
- pydocstyle 6.3.0 fails silently on a python script that has no .py extension
- Rule for missing PEP 698 `@overrides` decorators?
- Keyword Args not recognized in Google convention with no return
- Python3.12: Two tests fail HOT 1
- Google convention section names not properly checked
- D417 not raised in a standard Google configuration with missing arguments descriptions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pydocstyle.