semvec/pypi-packages huggingface dataset:
bobskater 0.2.1
AST based Obfuscator for Python
License: MIT
Keywords: bobskater obfuscator obfuscation minifier mangler python

<p align="center">
    <a href="https://travis-ci.org/Cobertos/bobskater.svg?branch=master" target="_blank"><img alt="build status" src="https://travis-ci.org/Cobertos/unitypackage_extractor.svg?branch=master"></a>
    <a href="https://img.shields.io/pypi/pyversions/bobskater.svg" target="_blank"><img alt="pypi python versions" src="https://pypi.org/project/bobskater/"></a>
    <a href="https://twitter.com/cobertos" target="_blank"><img alt="twitter" src="https://img.shields.io/badge/twitter-%40cobertos-0084b4.svg"></a>
    <a href="https://cobertos.com" target="_blank"><img alt="twitter" src="https://img.shields.io/badge/website-cobertos.com-888888.svg"></a>
</p>

# bobskater

An AST based Python obfuscator that robustly mangles names and other obfuscations of Python code

### Current limitations:
* DOES NOT SUPPORT: Annotations, evals, templated strings, imports of the form import xxx.yyy
* Very little configuration currently and instead takes a cautious approach in determining what identifiers to mangle. Globals, kwargs, class namespace identifiers, and others are not obfuscated but type of obfuscations should be use selected in the future.
* It is only tested with Python v3.5 and might not work with other AST versions
* Scoping for comprehensions are kind of hacky (and basically follows Python 2 comprehension scope leaking methodology)

### Installation

```
pip install bobskater
```

### Usage

`bobskater` provides a few mechanisms for direct use.

* `obfuscateString("")` obfuscates a string of source code.
* `obfuscateFile('myfile.py')` will obfuscate an entire file and overwrite the original

Both take keyword arguments for configuration:

* `removeDocstrings` will remove docstrings by replacing them with `pass` statements (to handle even cases where a function has only a docstring). Defaults to `True`
* `obfuscateNames` will obfuscate all names except globally scoped variables, kwargs, builtins, and identifiers in a class namespace. Defaults to `True`

There are no other obfuscations performed than the two mentioned above currently in `bobskater`

#### Example

```
from bobskater import obfuscateString

myFileContents = open('myfile.py', 'r').read()

#Will obfuscate myFileContents and return it into output. Names will not be mangled, only docstrings will be removed
output = obfuscateString(myFileContents, obfuscateNames=False)
```

### Contributing

##### Testing:
`pytest` - Runs all the tests

##### Releasing:
Refer to [the python docs on packaging for clarification](https://packaging.python.org/tutorials/packaging-projects/).
Make sure you've updated `setup.py`, and have installed `twine`, `setuptools`, and `wheel`
`python3 setup.py sdist bdist_wheel` - Create a source distribution and a binary wheel distribution into `dist/`
`twine upload dist/bobskater-x.x.x*` - Upload all `dist/` files to PyPI of a given version
Make sure to tag the commit you released
hirez.py 0.0.0.dev0
A mirror package for pyrez. Please install that instead.
License: MIT
Requires Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,<4
Keywords: pyrez,hirez,hi-rez,smite,paladins,realmapi,open-source,api,wrapper,library,python,api-wrapper,paladins-api,smitegame,smiteapi,realm-api,realm-royale,python3,python-3,python-3-6,async,asyncio

*This is a mirror package!* It is recommended to install `pyrez` instead.