Saravanan666/pypi-org huggingface dataset:
Package: django-media-fixtures-next
django-media-fixturesSimple project to copy media files (intended for fixtures loads) to the file storage, pretty much as thedjango.contrib.staticfilesapp does.Hint: This is a fork of the original package which is no longer maintainedChangelog1.0.1: Include PR to fix Django 4 smart_text exceptionsDependenciesPython 3.5+Django 1.8+Note: The version (v1.x.x) dropped support of Python2! If you still need Python2, please check the last version ofv0.1.x seriesInstallationpipinstalldjango-media-fixtures==1.0.1Then, add thedjango_media_fixturesapp in yoursettings.INSTALLED_APPS:INSTALLED_APPS=[...,'django.contrib.staticfiles','django_media_fixtures',...]UsageThe app provides a management commandcollectmedia:pythonmanage.pycollectmediaThis works similarly tocollectstatic: finds themedia_fixturessubdirectory in the apps directories, and copies those files to thesettings.MEDIA_ROOT.So, when you create your fixture (by any means, even through shell), put your file path matching the same tree folder layout as it should be in theMEDIA_ROOTdestination.For instance:YourModel.objects.get_or_create(image="uploads/yourmodel/img/example.jpeg")Where the fileexample.jpegis found inyourappfolder/media_fixtures/uploads/yourmodel/img/example.jpeg. Thecollectmediamanagement command will copy this file touploads/yourmodel/img/example.jpeginside thesettings.MEDIA_ROOTdirectory.ConfigurationsMEDIA_FIXTURE_FOLDERNAMEYou can change the media fixtures folder’s name on your apps, just putting this variable on settings.py.MEDIA_FIXTURE_FOLDERNAME='my_media_fixtures_folder'MEDIA_FIXTURES_FILES_FINDERSYou can change the media fixtures finders, to search media files on other folders not in-app, for instance.MEDIA_FIXTURES_FILES_FINDERS=('django_media_fixtures.finders.FileSystemFinder',# combined with MEDIA_FIXTURES_FILES_DIRS, choose specific folders'django_media_fixtures.finders.AppDirectoriesFinder',# default (if you do not set MEDIA_FIXTURES_FILES_FINDERS))MEDIA_FIXTURES_FILES_DIRSYou can list specific media folders that you want to include on search.MEDIA_FIXTURES_FILES_DIRS=["/home/user/myproject/mediafiles","/opt/webfiles/common/",]
Package: django-mediagenerator
Improve your user experience with fast page loads by combining,
compressing, and versioning your JavaScript & CSS files and images.django-mediageneratoreliminates unnecessary HTTP requests
and maximizes cache usage.Supports App Engine,Sass, HTML5 offline manifests,Jinja2,
Python/pyjs,CoffeeScript, and much more. Visit theproject sitefor more information.Most important changes in version 1.11Added LESS supportFixed an incompatibility with App Engine 1.6.0 on Python 2.7SeeCHANGELOG.rstfor the complete changelog.
Package: django-mediagenerator-kensho
Kensho uses mediagenerator for our static asset management.
In using it, we’ve come across a couple fixes that we believe
improve the overall experience of using mediagenerator for large
projects.From mediagenerator’s original README:Improve your user experience with fast page loads by combining,
compressing, and versioning your JavaScript & CSS files and images.django-mediageneratoreliminates unnecessary HTTP requests
and maximizes cache usage.Supports App Engine,Sass, HTML5 offline manifests,Jinja2,
Python/pyjs,CoffeeScript, and much more. Visit theproject sitefor more information.Most important changes in version 1.11Added LESS supportFixed an incompatibility with App Engine 1.6.0 on Python 2.7SeeCHANGELOG.rstfor the complete changelog.
Package: django-media-helper
#django-media-helper#When dealing with content from unacquainted sources(e.g., clients or designers)
one often gets images with absurd dimensions and/or filesizes: A 3000px-wide
play-button, a 10MB logo, etc.  Media-helper attempts to mitigate this problem
by automating image-resizing, delivering the most appropriately sized image to
the browser.It is also designed to be dropped into existing projects with minimal effort.
It’s still in the alpha stage, but if you’re careful it might make your life a
little bit easier while also speeding up your load times and reducing data
transfer.
Package: django-mediamanager
django-mediamanager============A central repository for registering scripts and styles for your applications.  This is similar to how the Django form media works,except that instead of including the media in each form, they are expected to be included in some base template so they are available on every page.This is useful when dealing with single page web apps that use client side MVC frameworks like Backbone.js and you have multiple Django apps that are providing their own media.## InstallingInstall from pip```sudo pip install django_mediamanager```Add the content processor```pythonfrom django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORSTEMPLATE_CONTEXT_PROCESSORS += ('django_mediamanager.context_processors.media_manager_processors',)```Autodiscover any media within your applications.  Add this to your main urls.py```pythonimport django_mediamanagerdjango_mediamanager.autodiscover()```## Adding mediaYour Django applications can provide a media.py file that registers all their media.  The media files are expected to be in a "static" directory within your applicationExample media.py```pythonimport django_mediamanagerdjango_mediamanager.site.add_js(("js/bootstrap.min.js","js/mycooljavascript.js",))django_mediamanager.site.add_css({"all": ("css/bootstrap.css","css/prettystyles.css",)})```## Including media in your templatesYou can use the media manager's context processors to include all the registered media in your templates.  For example:```html<html><head>{{ALL_STYLES}}</head><body>{{ALL_SCRIPTS}}</body></html>```
Package: django-mediamosa
django integration for a mediamosa (http://www.mediamosa.org) api.Currently this version only support setting up the API in settings.py
and has some examples in the urls.py and views.py file to illustrate how
this can be used.InstallationInstall django-mediamosa as follows:pip install django-mediamosaConfigurationAdd the following config to your project’s settings.py:MEDIAMOSA_URL='http://apivideo.example.com'MEDIAMOSA_USERNAME='USERNAME'MEDIAMOSA_PASSWORD='PASSWORD'UsageYou can start using the api in your views by importing the ‘api’ object
as follows:fromdjango_mediamosa.baseimportapiBugs and Feature requestsFor help, issues and feature requests, please go tohttp://www.github.com/UGentPortaal/django-mediamosa.ContributingPull requests may be submitted to the develop branch at our github
project. Make sure the code and functionality are sufficiently
documented.
Package: django-mediamosa-tinymce
This django application will add a mediamosa plugin to your tinymce
editor.InstallingInstall django-mediamosa-tinymce using pip.Configure django-mediamosa first. In settings.py of your project:MEDIAMOSA_URL='http://api-mediamosa.example.com'MEDIAMOSA_USERNAME='mediamosa-user'MEDIAMOSA_PASSWORD='mediamosa-password'Add mediamosa_tinymce to INSTALLED_APPS in settings.py for your project:INSTALLED_APPS=(...'mediamosa_tinymce',...)Update your TinyMce configuration so it will load the new plugin and shows
a mediamosa button:TINYMCE_DEFAULT_CONFIG={...'plugins':"table,spellchecker,paste,searchreplace,mediamosa",...'theme_advanced_buttons3_add':'mediamosa'}Add the mediamosa_tinymce.urls to urls.py for your project:urlpatterns=patterns('',...url(r'^mediamosa/tinymce',include('mediamosa_tinymce.urls')),...)Run the django collectstatic command to copy the mediamosa plugin for tinymce to your statics directory.python ./manage.py collectstaticUsageEnabling Mediamosa pluginIn order for the tinymce mediamosa to call the correct url’s, you need to set
the ModelAdmin’s change_form template file:classMyModelAdmin(admin.ModelAdmin):...change_form_template='admin/mediamosa_tinymce_change_form.html'...This will load the correct url’s to query in the plugin’s javascript.Playing an inserted mediafileWhen you now output the model attribute containing the mediamosa entry you just
inserted, you can initialize it by adding the following code to your template.<scripttype="text/javascript">varmediamosaPlayerURI="{% url mediafile-play %}";</script><scripttype="text/javascript"src="{{ STATIC_URL }}js/mediamosa-player.js"></script>This will initialize the URI the ajax call should connect to and launch the
code that will replace the still with the actual video.
Package: django-media-placeholder
Django Media PlaceholderThis project override djangostatic mediaandstorage(optional), for process every media request, if media not present locally, and try to obtain in another locationIts great for dev, homolog and QA ambients because no need to copy production media every time.InstallationInstall the package with:pip install django-media-placeholderUninstall the package with:pip uninstall django-media-placeholderAdd and URL to your URLCONF:from django_media_placeholder.static import static
urlpatterns = [
    ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)Onsettings.py, setMEDIA_URLto point to it...
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(DATA_DIR, 'media')
STATIC_ROOT = os.path.join(DATA_DIR, 'static')
ALTERNATIVE_MEDIA_URL = 'Url to Get image not present in locally'If use thumbanails, setDEFAULT_FILE_STORAGEto new storage,
(thumbnails's libs generate and get image directly in disk, no request to media path):DEFAULT_FILE_STORAGE = 'django_media_placeholder.custom_storage.OverwritingStorage'
Package: django-mediastore
Not intended for production use yet.Require at least Django 1.7Changelog0.7.1Fixing media select view by properly using JSON serializer.0.7.0The try of a Django 1.7 support.0.6.4Only usingfrom PIL import Imageimports to also support Pillow as PIL
replacement.0.6.3Fixing issue with limiting select popup by multiple media type.0.6.2Fixing issue with limiting select popup by media type.0.6.1Fixing issues with media preview in the admin.0.6.0Django 1.4 compatibility.Use django-taggit instead of django-tagging.0.5.6Various south fixes.0.5.5Addingdjango-sortedm2mas dependency.0.5.4Fixing PIL import issue. Falling back toImageifPILis not in the
path.0.4.1Addingcountfield to Download model.
Package: django-mediastream
MEDIA STREAM SERVICEGoal: To create a service that will:- Aggregate the search for media from disparate sources asynchronously- Provide a feed for the results for internal or external clientsRequires a backgrond job to run and collect the itemsRequires a URL to the feedRequires a URL to the page for the streamModels:Services:?? iNaturalist, YourShot, Instagram, flickr, etc.Media Stream - An aggregation (with configurable refresh) of media from one or more sources based on search termsMedia - Information about an individual media item for a stream found on a service.Service audit - Information about the results of a jobFeed/slug-name/feed?count=&page=&since=[{'title': '','description': '','when_taken': 'YYYY-MM-DD HH:MM:SS +4:????','latitude': 0.0,'longitude': 0.0,'service': '','license': '','artist': '','tags': '','media_type': '','media_url': '','media_width': 0,'media_height': 0,'service_url': ''}, ...]/slug-name/status[{'service': '','last_ran': 'YYYY-MM-DD HH:MM:SS +4:????','success': true,'error': ''}, ...]
Package: django-media-tools
django-media-tools is an app that provides useful widgets for managing media files in django admin. It doesn’t use any javascript library.Works with Django 1.10 and newer versions.InstallationInstall using pip:pip install django-media-toolsAddmedia_toolsto theINSTALLED_APPS:INSTALLED_APPS = [
   ...
   'media_tools',
]Runcollectstaticcommand. It will copy the static files used by media_tools to your static root.:python manage.py collectstaticPreviewImageWidgetPreviewImageWidget is a fairly simple widget that you can use for previewing anImageField.
The image-box is located at left of the Browse button as you can see below. If you click the image-box you will notice that the image will be open in a modal-box with a bigger size.image-box: preview of the imagemodal-box: it pops up when you click on the image-boxSettings for PreviewImageWidgetAddDJANGO_MEDIA_TOOLS_CONFIGto yoursettings.pyfile if you want to set defaults for PreviewImageWidget.DJANGO_MEDIA_TOOLS_CONFIG = {
    # max sizes of preview image-box
    'preview_max_height': '150px',
    'preview_max_width': '150px',

    # max size of preview modal-box (the box that is opened when clicked on image)
    'preview_modal_max_height': '90%',
    'preview_modal_max_width': '90%',

    # Hides 'currently' label on admin
    'hide_currently': False,

    # Shows the image url at the bottom of the modal if set to True
    'show_caption': True
}How to use PreviewImageWidgetsamplemodels.pyclass Product(models.Model):
    name = models.CharField(_('name'), max_length=50)
    photo = models.ImageField(_('Photo'), upload_to='testing/product', blank=True)
    banner = models.ImageField(_('Banner'), upload_to='testing/product', blank=True)sampleforms.pyfrom media_tools.widgets import ImagePreviewWidget
from .models import Product

class ProductForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = '__all__'
        widgets = {
            'photo': ImagePreviewWidget(preview_max_height='80px', preview_modal_max_height='600px', hide_currently=True, ),
            'banner': ImagePreviewWidget(preview_max_width='150px', preview_modal_max_width='50%', show_caption=False),
        }As you can see you can override the default settings by giving them as kwargs.
Package: django-media-tree
Django Media Tree is a Django app for managing your website’s media files in a
folder tree, and using them in your own applications.Key featuresEnables you to organize all of your site media in nested folders.Supports various media types (images, audio, video, archives etc).Extension system, enabling you to easily add special processing for different
media types and extend the admin interface.Speedy AJAX-enhanced admin interface with drag & drop and dynamic resizing.Upload queue with progress indicators (using Fine Uploader).Add metadata to all media to improve accessibility of your web sites.Integration withDjango CMS. Plugins include:
image, slideshow, gallery, download list – create your own!Full documentationhttp://readthedocs.org/docs/django-media-tree/
Package: django-medicio-ds
django-medicio_dsdjango-medicio_ds 는 medicio-pro v4.8.0을 장고에 맞게 포팅한 장고앱이다.프로젝트에 설치하기medicio 앱과 demian_parts 앱을 프로젝트 settings.py 의 INSTALLED_APPS 에 추가한다.importosINSTALLED_APPS=[...'demian_parts','medicio',]프로젝트의 urls.py에 medicio url을 추가한다.fromdjango.urlsimportpath,includeurlpatterns=[...path('',include('medicio.urls')),]케이스를 입력하기 위해서 프로젝트에 medicio 데이터베이스를 생성한다.python manage.py makemigrations medicio
    python manage.py migrate
    python manage.py createsuperuserhttp://127.0.0.1:8000/admin으로 접속하여 블로그를 입력한다.프로젝트 구조 생성하기개별 업체의 static 폴더 경로를 INSTALLED_APPS 에 추가한다.importosSTATICFILES_DIRS=[os.path.join(BASE_DIR,'_static/'),]_data 폴더를 생성하고 contents.py내에 데이터를 형식에 맞게 입력한다._static 폴더를 생성하고 각종 이미지 등을 형식에 맞게 저장한다.참고 : SCSS 설치하기 - 프로젝트에 SCSS를 설치해야 앱이 작동한다.https://www.accordbox.com/blog/how-use-scss-sass-your-django-project-python-way/django_compressor, django-libsass를 설치한다. (앱을 설치하면 자동으로 설치된다.)pip install django_compressor django-libsass프로젝트 settings.py 의 INSTALLED_APPS 에 다음을 추가한다.importosINSTALLED_APPS=[...'compressor',]COMPRESS_PRECOMPILERS=(('text/x-scss','django_libsass.SassCompiler'),)STATICFILES_FINDERS=['django.contrib.staticfiles.finders.FileSystemFinder','django.contrib.staticfiles.finders.AppDirectoriesFinder','compressor.finders.CompressorFinder',]# compressor 앱을 실행하기 위해서는 STATIC_ROOT가 설정되어 있어야 한다.STATIC_ROOT=os.path.join(BASE_DIR,'staticfiles')
Package: django-medilab-components
django-medilab_componentscomponents collection for medilab_dsSupported components필수 컴포넌트'popup',
'base',
'hero',선택 공통 컴포넌트'about',
'clients',
'gallery',
'cta',
'services',
'portfolio',
'contact',
'counts',
'whyus',
'faq',
'team',
'appointment',
'testimonials',선택 유니크 컴포넌트'departments',
Package: django-medilab-ds
django-medilab_dsdjango-medilab_ds 는 medilab-pro v4.8.0을 장고에 맞게 포팅한 장고앱이다.프로젝트에 설치하기medilab 앱과 demian_parts 앱을 프로젝트 settings.py 의 INSTALLED_APPS 에 추가한다.importosINSTALLED_APPS=[...'demian_parts','medilab',]프로젝트의 urls.py에 medilab url을 추가한다.fromdjango.urlsimportpath,includeurlpatterns=[...path('',include('medilab.urls')),]케이스를 입력하기 위해서 프로젝트에 medilab 데이터베이스를 생성한다.python manage.py makemigrations medilab demian_parts
    python manage.py migrate
    python manage.py createsuperuserhttp://127.0.0.1:8000/admin으로 접속하여 블로그를 입력한다.프로젝트 구조 생성하기개별 업체의 static 폴더 경로를 INSTALLED_APPS 에 추가한다.importosSTATICFILES_DIRS=[os.path.join(BASE_DIR,'_static/'),]_data 폴더를 생성하고 contents.py내에 데이터를 형식에 맞게 입력한다._static 폴더를 생성하고 각종 이미지 등을 형식에 맞게 저장한다.참고 : SCSS 설치하기 - 프로젝트에 SCSS를 설치해야 앱이 작동한다.https://www.accordbox.com/blog/how-use-scss-sass-your-django-project-python-way/django_compressor, django-libsass를 설치한다. (앱을 설치하면 자동으로 설치된다.)pip install django_compressor django-libsass프로젝트 settings.py 의 INSTALLED_APPS 에 다음을 추가한다.importosINSTALLED_APPS=[...'compressor',]COMPRESS_PRECOMPILERS=(('text/x-scss','django_libsass.SassCompiler'),)STATICFILES_FINDERS=['django.contrib.staticfiles.finders.FileSystemFinder','django.contrib.staticfiles.finders.AppDirectoriesFinder','compressor.finders.CompressorFinder',]# compressor 앱을 실행하기 위해서는 STATIC_ROOT가 설정되어 있어야 한다.STATIC_ROOT=os.path.join(BASE_DIR,'staticfiles')
Package: django-medilab-ds-mylifedc
django-medilab_ds_mylifedcdjango-medilab_ds_mylifedc 는 medilab-pro v4.8.0을 장고에 맞게 포팅한 장고앱이다.프로젝트에 설치하기medilab 앱과 demian_parts 앱을 프로젝트 settings.py 의 INSTALLED_APPS 에 추가한다.importosINSTALLED_APPS=[...'demian_parts','medilab',]...MEDIA_URL='/media/'MEDIA_ROOT=os.path.join(BASE_DIR,'media/')X_FRAME_OPTIONS='SAMEORIGIN'프로젝트의 urls.py에 medilab url을 추가한다.fromdjango.confimportsettingsfromdjango.conf.urls.staticimportstaticfromdjango.urlsimportpath,includeurlpatterns=[...path('',include('medilab.urls')),]ifsettings.DEBUG:urlpatterns+=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)케이스를 입력하기 위해서 프로젝트에 medilab 데이터베이스를 생성한다.python manage.py makemigrations medilab demian_parts
    python manage.py migrate
    python manage.py createsuperuserhttp://127.0.0.1:8000/admin으로 접속하여 블로그를 입력한다.프로젝트 구조 생성하기개별 업체의 static 폴더 경로를 INSTALLED_APPS 에 추가한다.importosSTATICFILES_DIRS=[os.path.join(BASE_DIR,'_static/'),]_data 폴더를 생성하고 contents.py내에 데이터를 형식에 맞게 입력한다._static 폴더를 생성하고 각종 이미지 등을 형식에 맞게 저장한다.참고 : SCSS 설치하기 - 프로젝트에 SCSS를 설치해야 앱이 작동한다.https://www.accordbox.com/blog/how-use-scss-sass-your-django-project-python-way/django_compressor, django-libsass를 설치한다. (앱을 설치하면 자동으로 설치된다.)pip install django_compressor django-libsass프로젝트 settings.py 의 INSTALLED_APPS 에 다음을 추가한다.importosINSTALLED_APPS=[...'compressor',]COMPRESS_PRECOMPILERS=(('text/x-scss','django_libsass.SassCompiler'),)STATICFILES_FINDERS=['django.contrib.staticfiles.finders.FileSystemFinder','django.contrib.staticfiles.finders.AppDirectoriesFinder','compressor.finders.CompressorFinder',]# compressor 앱을 실행하기 위해서는 STATIC_ROOT가 설정되어 있어야 한다.STATIC_ROOT=os.path.join(BASE_DIR,'staticfiles')
Package: django-mediumeditor
# Django Medium EditorAdds [Medium Editor](https://yabwe.github.io/medium-editor/) to [Django](https://www.djangoproject.com/).## Supported Environments* Django 1.10+* Python 3.6## Installation1. Install **django-mediumeditor**via PyPi:```pip install django-mediumeditor```via GIT:```pip install git+https://github.com/g3rd/django-mediumeditor.git```2. Install app```INSTALLED_APPS = [...'mediumeditor',]```## Usage### Django AdminAdd to Admin class```from mediumeditor.admin import MediumEditorAdmin@admin.register(MyModel)class MyModelAdmin(MediumEditorAdmin, admin.ModelAdmin):...mediumeditor_fields = ('my_text_field', )...```### Forms1. Override the Widget for the field```from mediumeditor.widgets import MediumEditorTextareaclass MyForm(forms.ModelForm):...class Meta:model = MyModelwidgets = {'my_text_field': MediumEditorTextarea(),}```2. In the ```<head>``` of the template```{{ form.media }}```### SettingsOptionaly change theme or change medium editor options in your settings.py```# Theme options `default`, `roman`, `mani`, `flat`, `bootstrap`, `tim`, `beagle`MEDIUM_EDITOR_THEME = 'beagle' # `default` is defualt themeMEDIUM_EDITOR_OPTIONS = {..}```[Available Options](https://github.com/yabwe/medium-editor/blob/master/OPTIONS.md)Example:```MEDIUM_EDITOR_THEME = 'bootstrap'MEDIUM_EDITOR_OPTIONS = {'toolbar': {'static': True,'buttons': ['bold','italic','underline','strikethrough','subscript','superscript','h1','h2','h3','h4','h5','h6',]},'paste': {'forcePlainText': True,'cleanPastedHTML': False,'cleanReplacements': [],'cleanAttrs': ['class', 'style', 'dir'],'cleanTags': ['meta']}}```## Contributing[Take out some bugs](https://github.com/g3rd/django-mediumeditor/issues)[Report issues or feature requests](https://github.com/g3rd/django-mediumeditor/issues)## LicenseMIT: https://github.com/g3rd/django-mediumeditor/blob/master/LICENSE
Package: django-meerkat
Django MeerkatSecurity audit tool for Django sites.LicenseSoftware licensed underISClicense.Installationpip install django-meerkatDocumentationOn ReadTheDocsDevelopmentTo run all the tests:toxChangelog0.2.6 (2018-01-18)Update pinned requirements.0.2.5 (2017-12-18)Update to work withdjango-app-settings0.3.0.0.2.4 (2017-10-04)Addarchansubmodule.Add Science/Reseach classifier.Allow failure for style and spell on travis.Drop support for Python 2.7 and PyPy (dependenpyv3).Fix boolean setting in apps.Setup travis stages, rename tox env names.Update fordependenpy3.1.0.Update fordjango-app-settings0.2.5.Update fordjango-suit-dashboard2.0.5.0.2.3 (2017-05-18)Remove use ofDJANGO_SHELLenvironment variable (to be done by user).Implement auto-complete functions inRequestLogto populate some values.Improve admin displays.Fix most visited pages box (+ huge performance improvement).Move geolocation functions intoutils.geolocation.0.2.2 (2017-05-11)Block thread being started ifDJANGO_SHELLenvironment variable is set.Fix log parser code.0.2.1 (2017-05-11)Remove reverse column from migration.0.2.0 (2017-05-11)Implements logs models and functions:thread to read Nginx logs continuously,functions and classes to get IP information from ipinfo and ip-api,function to append previous logs in DB,better match log lines (improved parser regular expression).Various additions and fixes:Add ISP, ASN and Proxy fields inIPInfomodel.Add Highcharts as asset.Monkey patch progress bar for Django 1.8.Changegeolocationnames toip_info.Adddjango-app-settingsrequirement.Add verbose names.Improve geolocation.Register models in admin.Keep reference to thread reading logs inRequestLogattributes.Link sub-models in main-models module.Fix deprecatedIPAddressField.Add initial migration.Use Codacy instead of Codecov.Change license from MPL 2.0 to ISC (no ‘same license’ condition).Remove Python 3.3 support.0.1.0 (2016-06-08)Alpha release on PyPi.