-
Notifications
You must be signed in to change notification settings - Fork 349
Tasks BaseTools Python3 Support
This task updating the existing Python-base BaseTools to run under both Python 2.7 and Python 3.0.
Not started.
- Directory list
[ ] AutoGen
[ ] Common
[ ] CommonDataClass
[ ] Workspace
[ ] Table
[ ] build
[ ] BPDG
[ ] Eot
[ ] GenFds
[ ] GenPatchPcdTable
[ ] PatchPcdValue
[ ] Trim
[ ] UPT
- Difficulty: Complex
- Language: Python
- Suggested by:
- Required completion date: End of year, 2020
Issues:
- Individual tools use shared modules that will need to be ported prior to
porting individual tools
- Current sources contain depricated content
- Files need to conform to the Python Coding Style Guideline and pass pylint
(static analysis tool)
- Several standard Python module functions are overridden for handling long
file paths
- Several filenames are duplicated in different directory trees
- Some imports are ambiguous
Location of Source Code:
[[email protected]:tianocore/edk2.git BaseTools/Source/Python]
Requirements:
- Update content to conform to Coding Style (see below)>
- Modules must pass pylint - a custom pylint RC file is available.
- Python files must start with the standard header
- Update code, replacing deprecated modules with newer modules.
- First line python code statement in each file must be:
``from
__future__
import
absolute_import
- All tools are 32-bit versions of the tools, in order to create Win32
executables.
Python 2.7.x - must be able to run with 2.7.3 or later Python 3.x.x - must be able to run with 3.4.x or later pip - recommended version is 8.1.1 - used to install other modules logilab-common - 1.2.0 or later logilab-astng - 0.24.3 or later pylint - 1.5.5 or later astroid - 1.4.5 or later uuid - 1.20 pywin32 - 217 or later antlr-python-runtime - 3.0.1 ONLY cx-Freeze - 4.3.4 or later
Python PEP-8 Coding Style Guidelines
Python PEP-257 Docstring Conventions
- Maximum line length for code: 100 characters - Maximum line length for comments and docstrings: 72 characters - Regular Expressions allow camel case: [a-zA-Z_][a-zA-Z0-9_]{2,30}$ - Const Regular Expressions: (([gA-Z_][a-zA-Z0-9_]*)|(__.*__))$ - min-similarity-lines=10 - ignored-classes=SQLObject - generated-members=REQUEST,acl_users,aq_parent - dummy-variables-rgx=_|dummy - max-args=12 - max-locals=25 - max-returns=10 - max-branches=25 - max-statements=100 - max-attributes=15 - min-public-methods=0 - deprecated-modules=regsub,string,TERMIOS,Bastion,rexec,optparse - Python 2.7.x requires all files to be endcoded on disk as ASCII, not UTF-8.
All modules must be able to execute from source with both Python 2.7.x and Python 3.x.x The following two files should be removed:
Common\MigrationUtilities.py
Common\PyUtility.pyd
Home
Getting Started with EDK II
Build Instructions
EDK II Platforms
EDK II Documents
EDK II Release Planning
Reporting Issues
Reporting Security Issues
Community Information
Inclusive Language
Additional Projects & Tasks
Training
Community Support
Community Virtual Meetings
GHSA GitHub Security Advisories Process (Draft)
Infosec-GHSA-Process-Proposal (Draft)