semvec/pypi-packages huggingface dataset:
ua-djangolibrary 0.6.6
Includes the guardedsettings.py and projectbuilder.py modules under Apache 2.0 LICENSE.
Requires Python: >=3.6

# For use within Django.

There are two Python modules

guardedsettings.py
projectbuilder.py

guardedsettings
===============
For use within a Django settings.py file.
It allows a Django project to ship and 
not incorporate secret information in the
settings.py file, such as the SECRET_KEY 
and DATABASE:PASSWORD.

When the guardedsettings program starts, it 
reads the guardedsettings.json file and creates
a Python dictionary from guardedsettings.json content. 
The JSON is referenced by using the method,
SettingsDictionary['Key In The JSON'].

guardedsettings.json
--------------------
In the Django Project Root, where the manage.py
file resides, you create a JSON file named 
guardedsettings.JSON as such.

{
	"SecretKey": "Secret", 
	"DatabasePassword" : "MoreSecret" 
}

Consider the line containing 

"SecretKey": "Secret", 

The term "SecretKey" is a key and the term
"Secret" is the value. Together they are called
a pair, hence the term 'key/value pair'.

Add as many key/value pairs as necessary, each
separated by a comma.

settings.py
-----------


Use guardedsettings within the Django settings.py
file as shown below. Place the two lines of code close
to or at the top of the settings.py file.

# --- At Or Near The Top of settings.py
from UA_GuardedSettings import guardedsettings
gs = guardedsettings.guardedsettings()
# ---

An instance of guardedsettings is now instantiated 
as the variable named 'gs'. You are welcome to name
the variable as you choose.

Later in the settings.py, use guardedsettings as 
shown.

The generic form of usage is

SomeDjangoSetting = gs.SettingsDictionary['SomeKey']

For example

# -- in the settings.py file
SECRET_KEY	= gs.SettingsDictionary['SecretKey']

and like so for a database password.

# -- in the settings.py file DATABASE section.
'PASSWORD' : gs.SettingsDictionary['databasePassword'],


projectbuilder.py
=================
The goal of projectbuilder is to package an existing
Django Project (not the apps), and create a package under
a new name - for use as a Site in a deployment.

This alleviates the need to create a new Django Project
in each deployment phase; testing, staging and production,
among others your organization may employ.

projectbuilder must run in the 'Project Root', where the 
Django manage.py folder resides.

The program requires two inputs.
(1) The name of the existing Django project to package.
(2) The name of the new Django Project to create.

The new package will be completely referenced to the 
new name you provide. The manage.py will be re-referenced,
as is the asgi.py, settings.py and, the wsgi.py files, all
referencing the new project.

It will build a zip file in the RootFolder\dist\projects
folder and is named with '_Project.zip' preceding the
project name you input as the new name.

Transport this zip file to a new deployment site and 
unzip it.
RPi.GPIO2 0.4.0
Compatibility layer between RPi.GPIO syntax and libgpiod semantics
Requires Python: >=3.7
Keywords: Raspberry Pi GPIO libgpiod RPi.GPIO

## RPi.GPIO2

[![PyPI version](https://badge.fury.io/py/RPi.GPIO2.svg)](https://badge.fury.io/py/RPi.GPIO2)

#### Summary:

This project implements a compatibility layer between RPi.GPIO syntax and libgpiod semantics.

#### Problem:

RPi.GPIO requires non-standard kernel patches that expose the GPIO registers to userspace via
a character device `/dev/gpiomem`. As this is not supported by the mainline Linux kernel, any
distribution targeting Raspberry Pi devices running the mainline kernel will not be compatible
with the RPi.GPIO library. As a large number of tutorials, especially those targeted at
beginners, demonstrate use of the RPi's GPIO pins by including RPi.GPIO syntax, this
incompatibility limits users to distributions build on a special downstream kernel maintained
by the Rapberry Pi foundation. We would like to enable beginners on any Linux distribution
by allowing them to follow easily available tutorials.

#### Solution:
Using the provided module, one will be able to write python code to use the Raspberry Pi's
GPIO pins as if they were using the API implemented by RPi.GPIO, but instead using
libgpiod's python bindings. libgpiod provides a straightforward interface for interacting
with GPIO pins on supported devices via the mainline Linux kernel interface.

For more detailed information on the design and implementation of this library, please
refer to the [functional and technical specification](https://github.com/underground-software/RPi.GPIO2/blob/master/spec/spec.pdf).

### Notes:

Do not install `RPI.GPIO` via `pip3` as that will attempt to install the raspbian-only library
that motivated this project in the first place. If that package is installed alonside this one,
attempts to `import RPi.GPIO` will cause an error as python will attempt to import the wrong
package.

To install the python development dependencies, run `pip install -r requirements.txt`.

Use of a virtual env is recomended for a development setup. This will allow local installation
of the library via `pip install -e .` in the repository root.

The libgpiod python bindings must be installed and accessible from the development environment.
This package is not available via `pip install` and must be installed using the system package
manager.

To enable access non-root access to the gpio pins, use the provided `non_root_permission.sh`
script. Upon successful execution, any user in Linux user group 'gpio' will be able to access
the gpio pins via this library.

To view the locations and surrounding lines of all TODOs, FIXMEs, and NOTEs in the codebase,
use the `notes.sh` script included with this project.

This project is free software, please refer to our [LICENSE](https://github.com/underground-software/RPi.GPIO2/blob/master/LICENSE.txt)
for further detail.
getpass-asterisk 1.0.1
An alternative implementation for getpass that echoes masked password (such as asterisks)

# getpass_asterisk
An alternative implementation for getpass that echoes masked password (such as asterisks).

## Security Note
> :warning: This module has been modified to add getpass_asterisk, which can echo asterisks in place of password. **Echoing of masked password leaks the length of the password**. Use this utility only in a scenario where passwords are always of fixed length. This utility was created to receive secret tokens as input which are always of same size. Echoing the asterisks helped improve user experience. Use at your own risk. Only use for taking constant length secret inputs.

## Installation
pip can be used to install getpass_asterisk.

```bash
pip install getpass_asterisk
```

## Usage
Usage is identical to getpass.

```python
# getpass_asterisk(prompt[, stream]) - Prompt for a password, with masked output.

from getpass_asterisk.getpass_asterisk import getpass_asterisk
password = getpass_asterisk("Enter password: ")
```

## Feedback
For feedback, contact: Muhammad Akbar (akbarATsecursive.com).