<commit_before>import json
import datetime

from django.core.urlresolvers import reverse
from django.http import Http404, HttpResponse
from django.shortcuts import render, get_object_or_404, redirect
from django.template import loader, Context

from django.contrib.sites.models import Site
from django.contrib.auth.decorators import login_required

from pycon.tutorials.models import PyConTutorialProposal
from pycon.tutorials.utils import process_tutorial_request

from symposion.schedule.forms import SlotEditForm
from symposion.schedule.models import Schedule, Day, Slot, Presentation
from symposion.schedule.timetable import TimeTable

def fetch_schedule(slug):
    qs = Schedule.objects.all()

    if slug is None:
        if qs.count() > 1:
            raise Http404()
        schedule = next(iter(qs), None)
        if schedule is None:
            raise Http404()
    else:
        schedule = get_object_or_404(qs, section__slug=slug)

    return schedule

def schedule_conference(request):
    days = Day.objects.filter(schedule__published=True)
    days = days.select_related('schedule')
    days = days.prefetch_related('schedule__section')
    days = days.order_by('date')
    timetables = [TimeTable(day) for day in days]
    return render(request, "schedule/schedule_conference.html", {
        "timetables": timetables,
    })

def schedule_detail(request, slug=None):
    schedule = fetch_schedule(slug)
    if not schedule.published and not request.user.is_staff:
        raise Http404()

    days = Day.objects.filter(schedule=schedule)
    days = days.select_related('schedule')
    days = days.prefetch_related('schedule__section')
    days = days.order_by('date')
    timetables = [TimeTable(day) for day in days]

    return render(request, "schedule/schedule_detail.html", {
        "schedule": schedule,
        "timetables": timetables,
    })

def schedule_list(request, slug=None):
    schedule = fetch_schedule(slug)

    presentations = Presentation.objects.filter(section=schedule.section)
    presentations = presentations.exclude(cancelled=True)

    ctx = {
        "schedule": schedule,
        "presentations": presentations,
    }
    return render(request, "schedule/schedule_list.html", ctx)

def schedule_list_csv(request, slug=None):
    schedule = fetch_schedule(slug)

    presentations = Presentation.objects.filter(section=schedule.section)
    presentations = presentations.exclude(cancelled=True).order_by("id")

    response = HttpResponse(mimetype="text/csv")
    if slug:
        file_slug = slug
    else:
        file_slug = "presentations"
    response["Content-Disposition"] = 'attachment; filename="%s.csv"' % file_slug

    response.write(loader.get_template("schedule/schedule_list.csv").render(Context({
        "presentations": presentations,

    })))
    return response

@login_required
def schedule_edit(request, slug=None):
    if not request.user.is_staff:
        raise Http404()

    schedule = fetch_schedule(slug)

    days = Day.objects.filter(schedule=schedule)
    days = days.select_related('schedule')
    days = days.prefetch_related('schedule__section')
    days = days.order_by('date')
    timetables = [TimeTable(day) for day in days]

    return render(request, "schedule/schedule_edit.html", {
        "schedule": schedule,
        "timetables": timetables,
    })

@login_required
def schedule_slot_edit(request, slug, slot_pk):

    if not request.user.is_staff:
        raise Http404()

    slot = get_object_or_404(Slot, day__schedule__section__slug=slug, pk=slot_pk)

    if request.method == "POST":
        form = SlotEditForm(request.POST, slot=slot)
        if form.is_valid():
            save = False
            if "content_override" in form.cleaned_data:
                slot.content_override = form.cleaned_data["content_override"]
                save = True
            if "presentation" in form.cleaned_data:
                presentation = form.cleaned_data["presentation"]
                if presentation is None:
                    slot.unassign()
                else:
                    slot.assign(presentation)
            if save:
                slot.save()
        return redirect("schedule_edit", slug)
    else:
        form = SlotEditForm(slot=slot)
        ctx = {
            "slug": slug,
            "form": form,
            "slot": slot,
        }
        return render(request, "schedule/_slot_edit.html", ctx)

def schedule_presentation_detail(request, pk):

    presentation = get_object_or_404(Presentation, pk=pk)

    # Tutorials allow for communication between instructor/attendee(s).
    # Offload the logic to its utility
    if isinstance(presentation.proposal, PyConTutorialProposal) and \
            request.method == 'POST':
        return process_tutorial_request(request, presentation)

    if presentation.slot:
        schedule = presentation.slot.day.schedule
    else:
        schedule = None

    ctx = {
        "presentation": presentation,
        "proposal": presentation.proposal,
        "speakers": presentation.speakers,
        "schedule": schedule,
    }
    return render(request, "schedule/presentation_detail.html", ctx)

def json_serializer(obj):
    if isinstance(obj, datetime.time):
        return obj.strftime("%H:%M")
    raise TypeError

def schedule_json(request):
    """
    Returns information about the schedule.

    *No authentication required.*

    URL:  /<YEAR>/schedule/conference.json

    The data returned is in JSON format, and looks like::

        [ <slot>, <slot>, ..., <poster>, <poster> ...]

    where a slot represents a talk, tutorial, or plenary and looks like::

        {
            "kind": "talk"|"tutorial"|"plenary",
            "name": "Title of talk",
            "room": "roomname1, roomname2, ..., roomnameN",
            "start": "HH:MM:SS",  # ISO format
            "end": "HH:MM:SS",  # ISO format
            "duration": 30,  # minutes
            "authors" ["author name 1", "author name 2", ..., "author name N"],
            "released":  true | false,   # recording release agreed to
            "license": "xx",
            "contact": ["email1", "email2", .., "emailN"],  # emails of authors
            "abstract": "Lorem ipsum and so forth and so on",
            "description: "Lorem ipsum and so forth and so on",
            "conf_key": 27,
            "conf_url": "https://conference_domain/path/to/talk",
            "video_url": "https://somehost/path/to/video_of_talk",
            "slides_url": "https://somehost/path/to/slides_of_talk",
            "assets_url": "https://somehost/path/to/assets_for_talk",
            "tags": "tag1, tag2, ..., tagN"
        }

    and a poster looks like::

        {
            "kind": "poster",
            "name": "Title of poster",
            "authors" ["author name 1", "author name 2", ..., "author name N"],
            "abstract": "Lorem ipsum and so forth and so on",
            "description: "Lorem ipsum and so forth and so on",
            "license": "xx",
            "room": "roomname1, roomname2, ..., roomnameN",
            "start": "HH:MM:SS",  # Provided but meaningless, ignore...
            "end": "HH:MM:SS",  # Provided but meaningless, ignore...
            "contact": ["email1", "email2", .., "emailN"],  # emails of authors
            "conf_key": 1227,
            "conf_url": "https://conference_domain/path/to/page/about/talk",
            "released":  true | false,   # recording release agreed to
        }
    """
    slots = Slot.objects.all().order_by("start")
    data = []
    for slot in slots:
        if slot.kind.label in ["talk", "tutorial", "plenary"] and slot.content:
            slot_data = {
                "name": slot.content.title,
                "room": ", ".join(room["name"] for room in slot.rooms.values()),
                "start": slot.start_date.isoformat(),
                "end": slot.end_date.isoformat(),
                "duration": slot.duration,
                "authors": [s.name for s in slot.content.speakers()],
                "abstract": getattr(slot.content.abstract, 'raw', slot.content.abstract),
                "description": getattr(slot.content.description, 'raw', slot.content.description),
                "conf_key": slot.pk,
                "conf_url": "https://%s%s" % (
                    Site.objects.get_current().domain,
                    reverse("schedule_presentation_detail", args=[slot.content.pk])
                ),
                "kind": slot.kind.label,
                "video_url": slot.content.video_url,
                "slides_url": slot.content.slides_url,
                "assets_url": slot.content.assets_url,
                "tags": "",
            }
        else:
            continue
        data.append(slot_data)

    for poster in Presentation.objects.filter(section__slug="posters", cancelled=False):
        poster_data = {
            "name": poster.title,
            "authors": [s.name for s in poster.speakers()],
            "description": getattr(poster.description, 'raw', poster.description),
            "abstract": getattr(poster.abstract, 'raw', poster.abstract),
            "license": "CC",
            "room": "Poster Room",
            "start": datetime.datetime(2014, 03, 17, 10).isoformat(),
            "end": datetime.datetime(2014, 03, 17, 13, 10).isoformat(),
            "contact": [s.email for s in poster.speakers()],
            "conf_key": 1000 + poster.pk,
            "conf_url": "https://%s%s" % (
                Site.objects.get_current().domain,
                reverse("schedule_presentation_detail", args=[poster.pk])
            ),
            "kind": "poster",
            "released": poster.proposal.recording_release,
        }
        data.append(poster_data)

    return HttpResponse(
        json.dumps(data, default=json_serializer),
        content_type="application/json"
    )
<commit_msg>Remove the same three fields from poster JSON<commit_after>import json
import datetime

from django.core.urlresolvers import reverse
from django.http import Http404, HttpResponse
from django.shortcuts import render, get_object_or_404, redirect
from django.template import loader, Context

from django.contrib.sites.models import Site
from django.contrib.auth.decorators import login_required

from pycon.tutorials.models import PyConTutorialProposal
from pycon.tutorials.utils import process_tutorial_request

from symposion.schedule.forms import SlotEditForm
from symposion.schedule.models import Schedule, Day, Slot, Presentation
from symposion.schedule.timetable import TimeTable

def fetch_schedule(slug):
    qs = Schedule.objects.all()

    if slug is None:
        if qs.count() > 1:
            raise Http404()
        schedule = next(iter(qs), None)
        if schedule is None:
            raise Http404()
    else:
        schedule = get_object_or_404(qs, section__slug=slug)

    return schedule

def schedule_conference(request):
    days = Day.objects.filter(schedule__published=True)
    days = days.select_related('schedule')
    days = days.prefetch_related('schedule__section')
    days = days.order_by('date')
    timetables = [TimeTable(day) for day in days]
    return render(request, "schedule/schedule_conference.html", {
        "timetables": timetables,
    })

def schedule_detail(request, slug=None):
    schedule = fetch_schedule(slug)
    if not schedule.published and not request.user.is_staff:
        raise Http404()

    days = Day.objects.filter(schedule=schedule)
    days = days.select_related('schedule')
    days = days.prefetch_related('schedule__section')
    days = days.order_by('date')
    timetables = [TimeTable(day) for day in days]

    return render(request, "schedule/schedule_detail.html", {
        "schedule": schedule,
        "timetables": timetables,
    })

def schedule_list(request, slug=None):
    schedule = fetch_schedule(slug)

    presentations = Presentation.objects.filter(section=schedule.section)
    presentations = presentations.exclude(cancelled=True)

    ctx = {
        "schedule": schedule,
        "presentations": presentations,
    }
    return render(request, "schedule/schedule_list.html", ctx)

def schedule_list_csv(request, slug=None):
    schedule = fetch_schedule(slug)

    presentations = Presentation.objects.filter(section=schedule.section)
    presentations = presentations.exclude(cancelled=True).order_by("id")

    response = HttpResponse(mimetype="text/csv")
    if slug:
        file_slug = slug
    else:
        file_slug = "presentations"
    response["Content-Disposition"] = 'attachment; filename="%s.csv"' % file_slug

    response.write(loader.get_template("schedule/schedule_list.csv").render(Context({
        "presentations": presentations,

    })))
    return response

@login_required
def schedule_edit(request, slug=None):
    if not request.user.is_staff:
        raise Http404()

    schedule = fetch_schedule(slug)

    days = Day.objects.filter(schedule=schedule)
    days = days.select_related('schedule')
    days = days.prefetch_related('schedule__section')
    days = days.order_by('date')
    timetables = [TimeTable(day) for day in days]

    return render(request, "schedule/schedule_edit.html", {
        "schedule": schedule,
        "timetables": timetables,
    })

@login_required
def schedule_slot_edit(request, slug, slot_pk):

    if not request.user.is_staff:
        raise Http404()

    slot = get_object_or_404(Slot, day__schedule__section__slug=slug, pk=slot_pk)

    if request.method == "POST":
        form = SlotEditForm(request.POST, slot=slot)
        if form.is_valid():
            save = False
            if "content_override" in form.cleaned_data:
                slot.content_override = form.cleaned_data["content_override"]
                save = True
            if "presentation" in form.cleaned_data:
                presentation = form.cleaned_data["presentation"]
                if presentation is None:
                    slot.unassign()
                else:
                    slot.assign(presentation)
            if save:
                slot.save()
        return redirect("schedule_edit", slug)
    else:
        form = SlotEditForm(slot=slot)
        ctx = {
            "slug": slug,
            "form": form,
            "slot": slot,
        }
        return render(request, "schedule/_slot_edit.html", ctx)

def schedule_presentation_detail(request, pk):

    presentation = get_object_or_404(Presentation, pk=pk)

    # Tutorials allow for communication between instructor/attendee(s).
    # Offload the logic to its utility
    if isinstance(presentation.proposal, PyConTutorialProposal) and \
            request.method == 'POST':
        return process_tutorial_request(request, presentation)

    if presentation.slot:
        schedule = presentation.slot.day.schedule
    else:
        schedule = None

    ctx = {
        "presentation": presentation,
        "proposal": presentation.proposal,
        "speakers": presentation.speakers,
        "schedule": schedule,
    }
    return render(request, "schedule/presentation_detail.html", ctx)

def json_serializer(obj):
    if isinstance(obj, datetime.time):
        return obj.strftime("%H:%M")
    raise TypeError

def schedule_json(request):
    """
    Returns information about the schedule.

    *No authentication required.*

    URL:  /<YEAR>/schedule/conference.json

    The data returned is in JSON format, and looks like::

        [ <slot>, <slot>, ..., <poster>, <poster> ...]

    where a slot represents a talk, tutorial, or plenary and looks like::

        {
            "kind": "talk"|"tutorial"|"plenary",
            "name": "Title of talk",
            "room": "roomname1, roomname2, ..., roomnameN",
            "start": "HH:MM:SS",  # ISO format
            "end": "HH:MM:SS",  # ISO format
            "duration": 30,  # minutes
            "authors" ["author name 1", "author name 2", ..., "author name N"],
            "abstract": "Lorem ipsum and so forth and so on",
            "description: "Lorem ipsum and so forth and so on",
            "conf_key": 27,
            "conf_url": "https://conference_domain/path/to/talk",
            "video_url": "https://somehost/path/to/video_of_talk",
            "slides_url": "https://somehost/path/to/slides_of_talk",
            "assets_url": "https://somehost/path/to/assets_for_talk",
            "tags": "tag1, tag2, ..., tagN"
        }

    and a poster looks like::

        {
            "kind": "poster",
            "name": "Title of poster",
            "authors" ["author name 1", "author name 2", ..., "author name N"],
            "abstract": "Lorem ipsum and so forth and so on",
            "description: "Lorem ipsum and so forth and so on",
            "room": "roomname1, roomname2, ..., roomnameN",
            "start": "HH:MM:SS",  # Provided but meaningless, ignore...
            "end": "HH:MM:SS",  # Provided but meaningless, ignore...
            "conf_key": 1227,
            "conf_url": "https://conference_domain/path/to/page/about/talk"
        }
    """
    slots = Slot.objects.all().order_by("start")
    data = []
    for slot in slots:
        if slot.kind.label in ["talk", "tutorial", "plenary"] and slot.content:
            slot_data = {
                "name": slot.content.title,
                "room": ", ".join(room["name"] for room in slot.rooms.values()),
                "start": slot.start_date.isoformat(),
                "end": slot.end_date.isoformat(),
                "duration": slot.duration,
                "authors": [s.name for s in slot.content.speakers()],
                "abstract": getattr(slot.content.abstract, 'raw', slot.content.abstract),
                "description": getattr(slot.content.description, 'raw', slot.content.description),
                "conf_key": slot.pk,
                "conf_url": "https://%s%s" % (
                    Site.objects.get_current().domain,
                    reverse("schedule_presentation_detail", args=[slot.content.pk])
                ),
                "kind": slot.kind.label,
                "video_url": slot.content.video_url,
                "slides_url": slot.content.slides_url,
                "assets_url": slot.content.assets_url,
                "tags": "",
            }
        else:
            continue
        data.append(slot_data)

    for poster in Presentation.objects.filter(section__slug="posters", cancelled=False):
        poster_data = {
            "name": poster.title,
            "authors": [s.name for s in poster.speakers()],
            "description": getattr(poster.description, 'raw', poster.description),
            "abstract": getattr(poster.abstract, 'raw', poster.abstract),
            "room": "Poster Room",
            "start": datetime.datetime(2014, 03, 17, 10).isoformat(),
            "end": datetime.datetime(2014, 03, 17, 13, 10).isoformat(),
            "conf_key": 1000 + poster.pk,
            "conf_url": "https://%s%s" % (
                Site.objects.get_current().domain,
                reverse("schedule_presentation_detail", args=[poster.pk])
            ),
            "kind": "poster",
        }
        data.append(poster_data)

    return HttpResponse(
        json.dumps(data, default=json_serializer),
        content_type="application/json"
    )
<|endoftext|>


<commit_before>from distutils.core import setup

setup(
    name='buqeyemodel',
    packages=['buqeyemodel'],
    version='0.1.0',
    description='A statistical model of EFT convergence.',
    author='Jordan Melendez',
    author_email='jmelendez1992@gmail.com',
    url='https://github.com/jordan-melendez/buqeyemodel',
    # download_url='',
    keywords=[
        'EFT', 'nuclear', 'model', 'gaussian', 'process',
        'uncertainty', 'quantification'
        ],
    classifiers=[
        'Development Status :: 2 - Pre-Alpha',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Intended Audience :: Science/Research',
        'Topic :: Scientific/Engineering',
        'Topic :: Scientific/Engineering :: Mathematics',
        'Topic :: Scientific/Engineering :: Physics'
        ]
)
<commit_msg>Added download url<commit_after>from distutils.core import setup

setup(
    name='buqeyemodel',
    packages=['buqeyemodel'],
    version='0.1.0',
    description='A statistical model of EFT convergence.',
    author='Jordan Melendez',
    author_email='jmelendez1992@gmail.com',
    url='https://github.com/jordan-melendez/buqeyemodel',
    download_url='https://github.com/jordan-melendez/buqeyemodel/archive/v0.1.0.tar.gz',
    keywords=[
        'EFT', 'nuclear', 'model', 'gaussian', 'process',
        'uncertainty', 'quantification'
        ],
    classifiers=[
        'Development Status :: 2 - Pre-Alpha',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Intended Audience :: Science/Research',
        'Topic :: Scientific/Engineering',
        'Topic :: Scientific/Engineering :: Mathematics',
        'Topic :: Scientific/Engineering :: Physics'
        ]
)
<|endoftext|>


<commit_before>"""
Flask-Migrate
--------------

SQLAlchemy database migrations for Flask applications using Alembic.
"""
from setuptools import setup

setup(
    name='vk-easy-alembic',
    version='1.6.1',
    url='http://github.com/miguelgrinberg/flask-migrate/',
    license='MIT',
    author='Miguel Grinberg',
    author_email='miguelgrinberg50@gmail.com',
    description=('SQLAlchemy database migrations for Flask applications '
                 'using Alembic'),
    long_description=__doc__,
    packages=['alembic_migrate'],
    zip_safe=False,
    include_package_data=True,
    platforms='any',
    install_requires=[
        'alembic>=0.6',
        'click'
    ],
    test_suite="tests",
    classifiers=[
        'Environment :: Web Environment',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
        'Topic :: Software Development :: Libraries :: Python Modules'
    ]
)
<commit_msg>Bumped version<commit_after>"""
Flask-Migrate
--------------

SQLAlchemy database migrations for Flask applications using Alembic.
"""
from setuptools import setup

setup(
    name='vk-easy-alembic',
    version='1.6.2',
    url='http://github.com/miguelgrinberg/flask-migrate/',
    license='MIT',
    author='Miguel Grinberg',
    author_email='miguelgrinberg50@gmail.com',
    description=('SQLAlchemy database migrations for Flask applications '
                 'using Alembic'),
    long_description=__doc__,
    packages=['alembic_migrate'],
    zip_safe=False,
    include_package_data=True,
    platforms='any',
    install_requires=[
        'alembic>=0.6',
        'click'
    ],
    test_suite="tests",
    classifiers=[
        'Environment :: Web Environment',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
        'Topic :: Software Development :: Libraries :: Python Modules'
    ]
)
<|endoftext|>


<commit_before>import os
import sys

from fnmatch import fnmatchcase

from distutils.util import convert_path
from setuptools import setup, find_packages

VERSION = __import__('pinax').__version__

def read(*path):
    return open(os.path.join(os.path.abspath(os.path.dirname(__file__)), *path)).read()

# Provided as an attribute, so you can append to these instead
# of replicating them:
standard_exclude = ["*.py", "*.pyc", "*~", ".*", "*.bak"]
standard_exclude_directories = [
    ".*", "CVS", "_darcs", "./build",
    "./dist", "EGG-INFO", "*.egg-info"
]

# Copied from paste/util/finddata.py
def find_package_data(where=".", package="", exclude=standard_exclude,
        exclude_directories=standard_exclude_directories,
        only_in_packages=True, show_ignored=False):
    """
    Return a dictionary suitable for use in ``package_data``
    in a distutils ``setup.py`` file.

    The dictionary looks like::

        {"package": [files]}

    Where ``files`` is a list of all the files in that package that
    don't match anything in ``exclude``.

    If ``only_in_packages`` is true, then top-level directories that
    are not packages won't be included (but directories under packages
    will).

    Directories matching any pattern in ``exclude_directories`` will
    be ignored; by default directories with leading ``.``, ``CVS``,
    and ``_darcs`` will be ignored.

    If ``show_ignored`` is true, then all the files that aren't
    included in package data are shown on stderr (for debugging
    purposes).

    Note patterns use wildcards, or can be exact paths (including
    leading ``./``), and all searching is case-insensitive.
    """

    out = {}
    stack = [(convert_path(where), "", package, only_in_packages)]
    while stack:
        where, prefix, package, only_in_packages = stack.pop(0)
        for name in os.listdir(where):
            fn = os.path.join(where, name)
            if os.path.isdir(fn):
                bad_name = False
                for pattern in exclude_directories:
                    if (fnmatchcase(name, pattern)
                        or fn.lower() == pattern.lower()):
                        bad_name = True
                        if show_ignored:
                            print >> sys.stderr, (
                                "Directory %s ignored by pattern %s"
                                % (fn, pattern))
                        break
                if bad_name:
                    continue
                if (os.path.isfile(os.path.join(fn, "__init__.py"))
                    and not prefix):
                    if not package:
                        new_package = name
                    else:
                        new_package = package + "." + name
                    stack.append((fn, "", new_package, False))
                else:
                    stack.append((fn, prefix + name + "/", package, only_in_packages))
            elif package or not only_in_packages:
                # is a file
                bad_name = False
                for pattern in exclude:
                    if (fnmatchcase(name, pattern)
                        or fn.lower() == pattern.lower()):
                        bad_name = True
                        if show_ignored:
                            print >> sys.stderr, (
                                "File %s ignored by pattern %s"
                                % (fn, pattern))
                        break
                if bad_name:
                    continue
                out.setdefault(package, []).append(prefix+name)
    return out

excluded_directories = standard_exclude_directories + ["./requirements", "./scripts"]
package_data = find_package_data(exclude_directories=excluded_directories)

setup(
    name="Pinax",
    version=VERSION,
    description="Pinax is an open-source collection of re-usable apps for the Django Web Framework",
    long_description=read("docs", "intro.txt"),
    author="James Tauber",
    author_email="jtauber@jtauber.com",
    maintainer="Jannis Leidel",
    maintainer_email="jannis@leidel.info",
    url="http://pinaxproject.com/",
    packages=find_packages(),
    package_data=package_data,
    zip_safe=False,
    entry_points={
        "console_scripts": [
            "pinax-admin = pinax.core.management:execute_from_command_line",
        ],
    },
    classifiers=[
        "Development Status :: 4 - Beta",
        "Environment :: Web Environment",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
        "Framework :: Django",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2.4",
        "Programming Language :: JavaScript",
    ],
)
<commit_msg>Changed maintainer to myself in setup.py<commit_after>import os
import sys

from fnmatch import fnmatchcase

from distutils.util import convert_path
from setuptools import setup, find_packages

VERSION = __import__('pinax').__version__

def read(*path):
    return open(os.path.join(os.path.abspath(os.path.dirname(__file__)), *path)).read()

# Provided as an attribute, so you can append to these instead
# of replicating them:
standard_exclude = ["*.py", "*.pyc", "*~", ".*", "*.bak"]
standard_exclude_directories = [
    ".*", "CVS", "_darcs", "./build",
    "./dist", "EGG-INFO", "*.egg-info"
]

# Copied from paste/util/finddata.py
def find_package_data(where=".", package="", exclude=standard_exclude,
        exclude_directories=standard_exclude_directories,
        only_in_packages=True, show_ignored=False):
    """
    Return a dictionary suitable for use in ``package_data``
    in a distutils ``setup.py`` file.

    The dictionary looks like::

        {"package": [files]}

    Where ``files`` is a list of all the files in that package that
    don't match anything in ``exclude``.

    If ``only_in_packages`` is true, then top-level directories that
    are not packages won't be included (but directories under packages
    will).

    Directories matching any pattern in ``exclude_directories`` will
    be ignored; by default directories with leading ``.``, ``CVS``,
    and ``_darcs`` will be ignored.

    If ``show_ignored`` is true, then all the files that aren't
    included in package data are shown on stderr (for debugging
    purposes).

    Note patterns use wildcards, or can be exact paths (including
    leading ``./``), and all searching is case-insensitive.
    """

    out = {}
    stack = [(convert_path(where), "", package, only_in_packages)]
    while stack:
        where, prefix, package, only_in_packages = stack.pop(0)
        for name in os.listdir(where):
            fn = os.path.join(where, name)
            if os.path.isdir(fn):
                bad_name = False
                for pattern in exclude_directories:
                    if (fnmatchcase(name, pattern)
                        or fn.lower() == pattern.lower()):
                        bad_name = True
                        if show_ignored:
                            print >> sys.stderr, (
                                "Directory %s ignored by pattern %s"
                                % (fn, pattern))
                        break
                if bad_name:
                    continue
                if (os.path.isfile(os.path.join(fn, "__init__.py"))
                    and not prefix):
                    if not package:
                        new_package = name
                    else:
                        new_package = package + "." + name
                    stack.append((fn, "", new_package, False))
                else:
                    stack.append((fn, prefix + name + "/", package, only_in_packages))
            elif package or not only_in_packages:
                # is a file
                bad_name = False
                for pattern in exclude:
                    if (fnmatchcase(name, pattern)
                        or fn.lower() == pattern.lower()):
                        bad_name = True
                        if show_ignored:
                            print >> sys.stderr, (
                                "File %s ignored by pattern %s"
                                % (fn, pattern))
                        break
                if bad_name:
                    continue
                out.setdefault(package, []).append(prefix+name)
    return out

excluded_directories = standard_exclude_directories + ["./requirements", "./scripts"]
package_data = find_package_data(exclude_directories=excluded_directories)

setup(
    name="Pinax",
    version=VERSION,
    description="Pinax is an open-source collection of re-usable apps for the Django Web Framework",
    long_description=read("docs", "intro.txt"),
    author="James Tauber",
    author_email="jtauber@jtauber.com",
    maintainer="Brian Rosner",
    maintainer_email="brosner@gmail.com",
    url="http://pinaxproject.com/",
    packages=find_packages(),
    package_data=package_data,
    zip_safe=False,
    entry_points={
        "console_scripts": [
            "pinax-admin = pinax.core.management:execute_from_command_line",
        ],
    },
    classifiers=[
        "Development Status :: 4 - Beta",
        "Environment :: Web Environment",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
        "Framework :: Django",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2.4",
        "Programming Language :: JavaScript",
    ],
)
<|endoftext|>


<commit_before>import os

from setuptools import setup, find_packages

install_requires = [
    "aiohttp==3.6.2",
    "graphql-core>=3.1,<3.2",
    "requests>=2.23,<3",
    "websockets>=8.1,<9",
    "yarl>=1.4,<1.6",
]

scripts = [
    "scripts/gql-cli",
]

tests_require = [
    "parse==1.15.0",
    "pytest==5.4.2",
    "pytest-asyncio==0.11.0",
    "pytest-cov==2.8.1",
    "mock==4.0.2",
    "vcrpy==4.0.2",
]

dev_requires = [
    "black==19.10b0",
    "check-manifest>=0.42,<1",
    "flake8==3.8.1",
    "isort==4.3.21",
    "mypy==0.770",
    "sphinx>=3.0.0,<4",
    "sphinx_rtd_theme>=0.4,<1",
    "sphinx-argparse==0.2.5",
] + tests_require

# Get version from __version__.py file
current_folder = os.path.abspath(os.path.dirname(__file__))
about = {}
with open(os.path.join(current_folder, "gql", "__version__.py"), "r") as f:
    exec(f.read(), about)

setup(
    name="gql",
    version=about["__version__"],
    description="GraphQL client for Python",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    url="https://github.com/graphql-python/gql",
    author="Syrus Akbary",
    author_email="me@syrusakbary.com",
    license="MIT",
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "Topic :: Software Development :: Libraries",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: Implementation :: PyPy",
    ],
    keywords="api graphql protocol rest relay gql client",
    packages=find_packages(include=["gql*"]),
    install_requires=install_requires,
    tests_require=tests_require,
    extras_require={"test": tests_require, "dev": dev_requires},
    include_package_data=True,
    zip_safe=False,
    platforms="any",
    scripts=scripts,
)
<commit_msg>Update aiohttp from 3.6.2 to 3.7.1 (#159)<commit_after>import os

from setuptools import setup, find_packages

install_requires = [
    "aiohttp==3.7.1",
    "graphql-core>=3.1,<3.2",
    "requests>=2.23,<3",
    "websockets>=8.1,<9",
    "yarl>=1.4,<1.6",
]

scripts = [
    "scripts/gql-cli",
]

tests_require = [
    "parse==1.15.0",
    "pytest==5.4.2",
    "pytest-asyncio==0.11.0",
    "pytest-cov==2.8.1",
    "mock==4.0.2",
    "vcrpy==4.0.2",
]

dev_requires = [
    "black==19.10b0",
    "check-manifest>=0.42,<1",
    "flake8==3.8.1",
    "isort==4.3.21",
    "mypy==0.770",
    "sphinx>=3.0.0,<4",
    "sphinx_rtd_theme>=0.4,<1",
    "sphinx-argparse==0.2.5",
] + tests_require

# Get version from __version__.py file
current_folder = os.path.abspath(os.path.dirname(__file__))
about = {}
with open(os.path.join(current_folder, "gql", "__version__.py"), "r") as f:
    exec(f.read(), about)

setup(
    name="gql",
    version=about["__version__"],
    description="GraphQL client for Python",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    url="https://github.com/graphql-python/gql",
    author="Syrus Akbary",
    author_email="me@syrusakbary.com",
    license="MIT",
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "Topic :: Software Development :: Libraries",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: Implementation :: PyPy",
    ],
    keywords="api graphql protocol rest relay gql client",
    packages=find_packages(include=["gql*"]),
    install_requires=install_requires,
    tests_require=tests_require,
    extras_require={"test": tests_require, "dev": dev_requires},
    include_package_data=True,
    zip_safe=False,
    platforms="any",
    scripts=scripts,
)
<|endoftext|>


<commit_before>import os
import re
import sys
from setuptools import setup, find_packages

install_requires = ['botocore>=1.5.0, <=1.5.38', 'aiohttp>=2.0.4',
                    'multidict>=2.1.4']

PY_VER = sys.version_info

if not PY_VER >= (3, 4, 1):
    raise RuntimeError("aiobotocore doesn't support Python earlier than 3.4")

def read(f):
    return open(os.path.join(os.path.dirname(__file__), f)).read().strip()

extras_require = {}

def read_version():
    regexp = re.compile(r"^__version__\W*=\W*'([\d.abrc]+)'")
    init_py = os.path.join(os.path.dirname(__file__),
                           'aiobotocore', '__init__.py')
    with open(init_py) as f:
        for line in f:
            match = regexp.match(line)
            if match is not None:
                return match.group(1)
        else:
            raise RuntimeError('Cannot find version in '
                               'aiobotocore/__init__.py')

classifiers = [
    'Intended Audience :: Developers',
    'Intended Audience :: System Administrators',
    'Programming Language :: Python :: 3',
    'Programming Language :: Python :: 3.4',
    'Programming Language :: Python :: 3.5',
    'Environment :: Web Environment',
    'Development Status :: 3 - Alpha',
]

setup(name='aiobotocore',
      version=read_version(),
      description='Async client for aws services using botocore and aiohttp',
      long_description='\n\n'.join((read('README.rst'), read('CHANGES.txt'))),
      classifiers=classifiers,
      author="Nikolay Novik",
      author_email="nickolainovik@gmail.com",
      url='https://github.com/aio-libs/aiobotocore',
      download_url='https://pypi.python.org/pypi/aiobotocore',
      license='Apache 2',
      packages=find_packages(),
      install_requires=install_requires,
      extras_require=extras_require,
      include_package_data=True)
<commit_msg>Add asyncio trove classifier<commit_after>import os
import re
import sys
from setuptools import setup, find_packages

install_requires = ['botocore>=1.5.0, <=1.5.38', 'aiohttp>=2.0.4',
                    'multidict>=2.1.4']

PY_VER = sys.version_info

if not PY_VER >= (3, 4, 1):
    raise RuntimeError("aiobotocore doesn't support Python earlier than 3.4")

def read(f):
    return open(os.path.join(os.path.dirname(__file__), f)).read().strip()

extras_require = {}

def read_version():
    regexp = re.compile(r"^__version__\W*=\W*'([\d.abrc]+)'")
    init_py = os.path.join(os.path.dirname(__file__),
                           'aiobotocore', '__init__.py')
    with open(init_py) as f:
        for line in f:
            match = regexp.match(line)
            if match is not None:
                return match.group(1)
        else:
            raise RuntimeError('Cannot find version in '
                               'aiobotocore/__init__.py')

classifiers = [
    'Intended Audience :: Developers',
    'Intended Audience :: System Administrators',
    'Programming Language :: Python :: 3',
    'Programming Language :: Python :: 3.4',
    'Programming Language :: Python :: 3.5',
    'Environment :: Web Environment',
    'Development Status :: 3 - Alpha',
    'Framework :: AsyncIO',
]

setup(name='aiobotocore',
      version=read_version(),
      description='Async client for aws services using botocore and aiohttp',
      long_description='\n\n'.join((read('README.rst'), read('CHANGES.txt'))),
      classifiers=classifiers,
      author="Nikolay Novik",
      author_email="nickolainovik@gmail.com",
      url='https://github.com/aio-libs/aiobotocore',
      download_url='https://pypi.python.org/pypi/aiobotocore',
      license='Apache 2',
      packages=find_packages(),
      install_requires=install_requires,
      extras_require=extras_require,
      include_package_data=True)
<|endoftext|>


<commit_before>#!/usr/bin/python

# This file is part of RCubic
#
# Copyright (c) 2012 Wireless Generation, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.

from distutils.core import setup
from distutils.command.install import INSTALL_SCHEMES
for scheme in INSTALL_SCHEMES.values():
    scheme['data'] = scheme['purelib']

setup(name = 'RCubic',
      version = '1.2',
      description = 'RCubic',
      # Required packages
      requires = ['MiniREST', 'lxml', 'simplejson', 'pydot', 'gevent'],
      # List what we provide and obolete for updates
      provides = ['RCubic'],
      obsoletes = ['RCubic'],
      # Main packages
      packages = ['RCubic'],
      # Command line scripts
      scripts = [
          'bin/rcubic', 'bin/rcubic-cli', 'bin/rcubic-checkin', 'bin/rcubic-migratedb'
          ],
      # Config files
      data_files = [
          ('RCubic/', ["RCubic/rcubic.xml.template" ]),
          ('RCubic/web/', ["RCubic/web/index.html" ]),
          ('RCubic/web/archive/', ["RCubic/web/archive/index.html"]),
          ('RCubic/web/', [
              "RCubic/web/index.html",
              "RCubic/web/archive.html"
              ]),
          ('RCubic/web/css/', [
            "RCubic/web/css/jquery.qtip.min.css",
            "RCubic/web/css/select2.css",
            "RCubic/web/css/select2.png",
            "RCubic/web/css/select2x2.png",
            "RCubic/web/css/spinner.gif"]),
          ('RCubic/web/css/syntax/', [
            "RCubic/web/css/syntax/shCore.css",
            "RCubic/web/css/syntax/shCoreFadeToGrey.css"]),
          ('RCubic/web/js/', [
            "RCubic/web/js/select2.js",
            "RCubic/web/js/jquery.min.js",
            "RCubic/web/js/jquery.ui.min.js",
            "RCubic/web/js/jquery.qtip.min.js"]),
          ('RCubic/web/js/syntax/', [
            "RCubic/web/js/syntax/shCore.js",
            "RCubic/web/js/syntax/shBrushBash.js"]),
          ('RCubic/web/css/vader/', [
            "RCubic/web/css/vader/jquery-ui-1.8.21.custom.css" ]),
          ('RCubic/web/css/vader/images/', [
            "RCubic/web/css/vader/images/ui-bg_glass_95_fef1ec_1x400.png",
            "RCubic/web/css/vader/images/ui-icons_aaaaaa_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_cccccc_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_bbbbbb_256x240.png",
            "RCubic/web/css/vader/images/ui-bg_flat_0_aaaaaa_40x100.png",
            "RCubic/web/css/vader/images/ui-bg_inset-soft_15_121212_1x100.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-hard_15_888888_1x100.png",
            "RCubic/web/css/vader/images/ui-icons_c98000_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_666666_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_f29a00_256x240.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png",
            "RCubic/web/css/vader/images/ui-icons_cd0a0a_256x240.png",
            "RCubic/web/css/vader/images/ui-bg_gloss-wave_16_121212_500x100.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-hard_55_555555_1x100.png"]),
        ]
    )
<commit_msg>./setup.py: whitespace around [ and ]<commit_after>#!/usr/bin/python

# This file is part of RCubic
#
# Copyright (c) 2012 Wireless Generation, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.

from distutils.core import setup
from distutils.command.install import INSTALL_SCHEMES
for scheme in INSTALL_SCHEMES.values():
    scheme['data'] = scheme['purelib']

setup(name = 'RCubic',
      version = '1.2',
      description = 'RCubic',
      # Required packages
      requires = ['MiniREST', 'lxml', 'simplejson', 'pydot', 'gevent'],
      # List what we provide and obolete for updates
      provides = ['RCubic'],
      obsoletes = ['RCubic'],
      # Main packages
      packages = ['RCubic'],
      # Command line scripts
      scripts = [
          'bin/rcubic', 'bin/rcubic-cli', 'bin/rcubic-checkin', 'bin/rcubic-migratedb'
          ],
      # Config files
      data_files = [
          ('RCubic/', ["RCubic/rcubic.xml.template"]),
          ('RCubic/web/', ["RCubic/web/index.html"]),
          ('RCubic/web/archive/', ["RCubic/web/archive/index.html"]),
          ('RCubic/web/', [
              "RCubic/web/index.html",
              "RCubic/web/archive.html"
              ]),
          ('RCubic/web/css/', [
            "RCubic/web/css/jquery.qtip.min.css",
            "RCubic/web/css/select2.css",
            "RCubic/web/css/select2.png",
            "RCubic/web/css/select2x2.png",
            "RCubic/web/css/spinner.gif"]),
          ('RCubic/web/css/syntax/', [
            "RCubic/web/css/syntax/shCore.css",
            "RCubic/web/css/syntax/shCoreFadeToGrey.css"]),
          ('RCubic/web/js/', [
            "RCubic/web/js/select2.js",
            "RCubic/web/js/jquery.min.js",
            "RCubic/web/js/jquery.ui.min.js",
            "RCubic/web/js/jquery.qtip.min.js"]),
          ('RCubic/web/js/syntax/', [
            "RCubic/web/js/syntax/shCore.js",
            "RCubic/web/js/syntax/shBrushBash.js"]),
          ('RCubic/web/css/vader/', [
            "RCubic/web/css/vader/jquery-ui-1.8.21.custom.css"]),
          ('RCubic/web/css/vader/images/', [
            "RCubic/web/css/vader/images/ui-bg_glass_95_fef1ec_1x400.png",
            "RCubic/web/css/vader/images/ui-icons_aaaaaa_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_cccccc_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_bbbbbb_256x240.png",
            "RCubic/web/css/vader/images/ui-bg_flat_0_aaaaaa_40x100.png",
            "RCubic/web/css/vader/images/ui-bg_inset-soft_15_121212_1x100.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-hard_15_888888_1x100.png",
            "RCubic/web/css/vader/images/ui-icons_c98000_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_666666_256x240.png",
            "RCubic/web/css/vader/images/ui-icons_f29a00_256x240.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png",
            "RCubic/web/css/vader/images/ui-icons_cd0a0a_256x240.png",
            "RCubic/web/css/vader/images/ui-bg_gloss-wave_16_121212_500x100.png",
            "RCubic/web/css/vader/images/ui-bg_highlight-hard_55_555555_1x100.png"]),
        ]
    )
<|endoftext|>


<commit_before>from distutils.core import setup

setup(
    name='zxcvbn-python',
    version='4.4.9',
    packages=['zxcvbn'],
    url='https://github.com/dwolfhub/zxcvbn-python',
    download_url='https://github.com/dwolfhub/zxcvbn-python/tarball/4.4.9',
    license='MIT',
    author='Daniel Wolf',
    author_email='danielrwolf5@gmail.com',
    description='Python implementation of Dropbox\'s realistic password '
                'strength estimator, zxcvbn',
    keywords=['zxcvbn', 'password', 'security'],
)<commit_msg>upgrading version to 4.4.10 in setup.py<commit_after>from distutils.core import setup

setup(
    name='zxcvbn-python',
    version='4.4.10',
    packages=['zxcvbn'],
    url='https://github.com/dwolfhub/zxcvbn-python',
    download_url='https://github.com/dwolfhub/zxcvbn-python/tarball/4.4.10',
    license='MIT',
    author='Daniel Wolf',
    author_email='danielrwolf5@gmail.com',
    description='Python implementation of Dropbox\'s realistic password '
                'strength estimator, zxcvbn',
    keywords=['zxcvbn', 'password', 'security'],
)<|endoftext|>


<commit_before># from distutils.core import setup, find_packages
from setuptools import setup, find_packages

setup(
    name='ktcal2',
    version='0.1.5',
    packages=find_packages(),
    url='https://github.com/cr0hn/ktcal2',
    install_requires=["PyCrypto", "asyncssh==0.8.1"],
    license='BSD',
    author='cr0hn',
    author_email='cr0hn<-at->cr0hn.com',
    description='SSH brute forcer tool and library, using AsyncIO of Python 3.4',
    entry_points={'console_scripts': [
        'kt-cal2 = ktcal2.kt_cal2:main',
    ]},
    classifiers=[
        'Environment :: Console',
        'Intended Audience :: System Administrators',
        'Intended Audience :: Other Audience',
        'License :: OSI Approved :: BSD License',
        'Operating System :: MacOS',
        'Operating System :: Microsoft :: Windows',
        'Operating System :: POSIX',
        'Programming Language :: Python :: 3',
        'Topic :: Security',
    ]
)
<commit_msg>Updated depencies<commit_after># from distutils.core import setup, find_packages
from setuptools import setup, find_packages

setup(
    name='ktcal2',
    version='0.1.6',
    packages=find_packages(),
    url='https://github.com/cr0hn/ktcal2',
    install_requires=["asyncssh"],
    license='BSD',
    author='cr0hn',
    author_email='cr0hn<-at->cr0hn.com',
    description='SSH brute forcer tool and library, using AsyncIO of Python 3.4',
    entry_points={'console_scripts': [
        'kt-cal2 = ktcal2.kt_cal2:main',
    ]},
    classifiers=[
        'Environment :: Console',
        'Intended Audience :: System Administrators',
        'Intended Audience :: Other Audience',
        'License :: OSI Approved :: BSD License',
        'Operating System :: MacOS',
        'Operating System :: Microsoft :: Windows',
        'Operating System :: POSIX',
        'Programming Language :: Python :: 3',
        'Topic :: Security',
    ]
)
<|endoftext|>


<commit_before>import os.path
import setuptools
import sys

import tcconfig

MISC_DIR = "misc"
REQUIREMENT_DIR = "requirements"

needs_pytest = set(['pytest', 'test', 'ptr']).intersection(sys.argv)
pytest_runner = ['pytest-runner'] if needs_pytest else []

with open("README.rst") as fp:
    long_description = fp.read()

with open(os.path.join(MISC_DIR, "summary.txt")) as f:
    summary = f.read()

with open(os.path.join(REQUIREMENT_DIR, "requirements.txt")) as f:
    install_requires = [line.strip() for line in f if line.strip()]

with open(os.path.join(REQUIREMENT_DIR, "test_requirements.txt")) as f:
    tests_require = [line.strip() for line in f if line.strip()]

setuptools.setup(
    name="tcconfig",
    version=tcconfig.VERSION,
    author="Tsuyoshi Hombashi",
    author_email="gogogo.vm@gmail.com",
    url="https://github.com/thombashi/tcconfig",
    description=summary,
    keywords=["traffic control", "bandwidth", "latency", "packet loss"],
    long_description=long_description,
    license="MIT License",
    include_package_data=True,
    packages=setuptools.find_packages(exclude=['test*']),
    install_requires=install_requires,
    setup_requires=pytest_runner,
    tests_require=tests_require,
    classifiers=[
        "Development Status :: 4 - Beta",
        "Environment :: Console",
        "Intended Audience :: System Administrators",
        "License :: OSI Approved :: MIT License",
        "Operating System :: POSIX",
        "Operating System :: POSIX :: Linux",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.3",
        "Programming Language :: Python :: 3.4",
        "Programming Language :: Python :: 3.5",
        "Topic :: System :: Networking",
    ],
    entry_points={
        "console_scripts": [
            "tcset=tcconfig.tcset:main",
            "tcdel=tcconfig.tcdel:main",
            "tcshow=tcconfig.tcshow:main",
        ],
    }
)
<commit_msg>Update setup.py<commit_after>import os.path
import setuptools
import sys

import tcconfig

REQUIREMENT_DIR = "requirements"

needs_pytest = set(["pytest", "test", "ptr"]).intersection(sys.argv)
pytest_runner = ["pytest-runner"] if needs_pytest else []

with open("README.rst") as fp:
    long_description = fp.read()

with open(os.path.join("docs", "pages", "introduction", "summary.txt")) as f:
    summary = f.read()

with open(os.path.join(REQUIREMENT_DIR, "requirements.txt")) as f:
    install_requires = [line.strip() for line in f if line.strip()]

with open(os.path.join(REQUIREMENT_DIR, "test_requirements.txt")) as f:
    tests_require = [line.strip() for line in f if line.strip()]

setuptools.setup(
    name="tcconfig",
    version=tcconfig.VERSION,
    author="Tsuyoshi Hombashi",
    author_email="gogogo.vm@gmail.com",
    url="https://github.com/thombashi/tcconfig",
    description=summary,
    keywords=["traffic control", "bandwidth", "latency", "packet loss"],
    long_description=long_description,
    license="MIT License",
    include_package_data=True,
    packages=setuptools.find_packages(exclude=['test*']),
    install_requires=install_requires,
    setup_requires=pytest_runner,
    tests_require=tests_require,
    classifiers=[
        "Development Status :: 4 - Beta",
        "Environment :: Console",
        "Intended Audience :: System Administrators",
        "License :: OSI Approved :: MIT License",
        "Operating System :: POSIX",
        "Operating System :: POSIX :: Linux",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.3",
        "Programming Language :: Python :: 3.4",
        "Programming Language :: Python :: 3.5",
        "Topic :: System :: Networking",
    ],
    entry_points={
        "console_scripts": [
            "tcset=tcconfig.tcset:main",
            "tcdel=tcconfig.tcdel:main",
            "tcshow=tcconfig.tcshow:main",
        ],
    }
)
<|endoftext|>


<commit_before>#!/usr/bin/env python3

from setuptools import setup, find_packages, Extension

import os
import io
import re
import numpy

def read(*names, **kwargs):
    with io.open(
        os.path.join(os.path.dirname(__file__), *names),
        encoding=kwargs.get("encoding", "utf8")
    ) as fp:
        return fp.read()

def find_version(*file_paths):
    version_file = read(*file_paths)
    version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
                              version_file, re.M)
    if version_match:
        return version_match.group(1)
    raise RuntimeError("Unable to find version string.")

pccup = Extension(
    'camoco.PCCUP',
    sources=['camoco/PCCUP.pyx'],
#   extra_compile_args=['-ffast-math'],
    include_dirs=[numpy.get_include()]
)
refgendist = Extension(
    'camoco.RefGenDist',
    sources=['camoco/RefGenDist.pyx'],
#   extra_compile_args=['-ffast-math'],
    include_dirs=[numpy.get_include()]
)

# Check if running Windows
if os.name == 'nt':
    raise ValueError("Camoco isn't supported for windows! Camoco runs best on Linux!")
    sys.exit(1)

setup(
    name = 'camoco',
    version = find_version('camoco','__init__.py'),
    packages = find_packages(),
    scripts = [
        'camoco/cli/camoco'
    ],
    ext_modules = [pccup,refgendist],
    cmdclass = {
    },

    package_data = {
        '':['*.cyx']
    },
    python_requires='>=3.6',
    setup_requires = [
        # Setuptools 18.0 properly handles Cython extensions.
        'setuptools>=18.0',
        #'numpy==1.14.5',
        'cython',
    ],
#   include_dirs=['camoco/include'],
    install_requires = [
        'minus80>=0.3.3',
        'cython==0.29.10',
        'igraph==0.1.11',
        'pyyaml==5.1.1',
        'matplotlib==3.1.0',
        'numpy==1.16.4',
        'scipy==1.2.1',
        'pandas==0.23.4',

        'scikit-learn==0.21.2',
        'statsmodels==0.8.0',
        'termcolor==1.1.0',
        'powerlaw==1.4.6',
        'flask==1.0.3',
        'markov-clustering==0.0.6.dev0',
        'fastcluster==1.1.25'
    ],
    extras_require={
        'docs' : [
            'ipython>=6.5.0',
            'matplotlib>=2.2.3',
            'numpydoc',
            'sphinx_materialdesign_theme',
            'sphinx_rtd_theme',
            'sphinxcontrib-programoutput'
        ]
    },
    dependency_links = [
        #'git+https://github.com/LinkageIO/Minus80'
        #'git+https://github.com/rogerbinns/apsw'
    ],
    include_package_data=True,

    author = 'Rob Schaefer',
    author_email = 'rob@linkgae.io',
    description = 'Library for Co-Analysis of Molecular Componenets.',
    license = "Copyright Linkage Analytics 2017, Available under the MIT License",
    url = 'https://github.com/schae234/camoco'
)
<commit_msg>update deps and force python 3.6<commit_after>#!/usr/bin/env python3

from setuptools import setup, find_packages, Extension

import os
import io
import re
import numpy

def read(*names, **kwargs):
    with io.open(
        os.path.join(os.path.dirname(__file__), *names),
        encoding=kwargs.get("encoding", "utf8")
    ) as fp:
        return fp.read()

def find_version(*file_paths):
    version_file = read(*file_paths)
    version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
                              version_file, re.M)
    if version_match:
        return version_match.group(1)
    raise RuntimeError("Unable to find version string.")

pccup = Extension(
    'camoco.PCCUP',
    sources=['camoco/PCCUP.pyx'],
#   extra_compile_args=['-ffast-math'],
    include_dirs=[numpy.get_include()]
)
refgendist = Extension(
    'camoco.RefGenDist',
    sources=['camoco/RefGenDist.pyx'],
#   extra_compile_args=['-ffast-math'],
    include_dirs=[numpy.get_include()]
)

# Check if running Windows
if os.name == 'nt':
    raise ValueError("Camoco isn't supported for windows! Camoco runs best on Linux!")
    sys.exit(1)

setup(
    name = 'camoco',
    version = find_version('camoco','__init__.py'),
    packages = find_packages(),
    scripts = [
        'camoco/cli/camoco'
    ],
    ext_modules = [pccup,refgendist],
    cmdclass = {
    },

    package_data = {
        '':['*.cyx']
    },
    python_requires='==3.6',
    setup_requires = [
        # Setuptools 18.0 properly handles Cython extensions.
        'setuptools>=18.0',
        #'numpy==1.14.5',
        'cython',
    ],
#   include_dirs=['camoco/include'],
    install_requires = [
        'minus80>=0.3.3',
        'cython>=0.29.10',
        'igraph>=0.1.11',
        'pyyaml>=5.1.1',
        'matplotlib>=3.1.0',
        'numpy>=1.16.4',
        'scipy>=1.2.1',
        'pandas==0.23.4',

        'scikit-learn>=0.21.2',
        'statsmodels>=0.8.0',
        'termcolor>=1.1.0',
        'powerlaw>=1.4.6',
        'flask>=1.0.3',
        'markov-clustering>=0.0.6.dev0',
        'fastcluster>=1.1.25'
    ],
    extras_require={
        'docs' : [
            'ipython>=6.5.0',
            'matplotlib>=2.2.3',
            'numpydoc',
            'sphinx_materialdesign_theme',
            'sphinx_rtd_theme',
            'sphinxcontrib-programoutput'
        ]
    },
    dependency_links = [
        #'git+https://github.com/LinkageIO/Minus80'
        #'git+https://github.com/rogerbinns/apsw'
    ],
    include_package_data=True,

    author = 'Rob Schaefer',
    author_email = 'rob@linkgae.io',
    description = 'Library for Co-Analysis of Molecular Componenets.',
    license = "Copyright Linkage Analytics 2017, Available under the MIT License",
    url = 'https://github.com/schae234/camoco'
)
<|endoftext|>


<commit_before>try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

config = {
    'description': 'AdaScreen - Ensembles of Screening Rules',
    'url': 'https://github.com/nicococo/AdaScreen',
    'author': 'Nico Goernitz',
    'author_email': 'nico.goernitz@tu-berlin.de',
    'version': '2016.12.21',
    'install_requires': ['nose', 'scikit-learn', 'numpy', 'multiprocessing',
                         'drmaa', 'psutil', 'pyzmq'],
    'packages': ['adascreen', 'adascreen_experiments', 'clustermap'],  # names of the packages
    'package_dir': {'adascreen' : 'adascreen',
                    'clustermap' : 'clustermap',
                    'adascreen_experiments' : 'scripts'},  # locations of the actual package in the source tree
    'scripts': ['bin/adascreen_experiment.sh'],
    'name': 'adascreen',
    'classifiers':['Intended Audience :: Science/Research',
                   'Programming Language :: Python',
                   'Topic :: Scientific/Engineering',
                   'Operating System :: POSIX',
                   'Operating System :: Unix',
                   'Operating System :: MacOS',
                   'Programming Language :: Python :: 2',
                   'Programming Language :: Python :: 2.7']
}

setup(**config)<commit_msg>setup builds cython code<commit_after>try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

from distutils.extension import Extension
from Cython.Build import cythonize

import numpy as np

config = {
    'name': 'adascreen',
    'description': 'AdaScreen - Ensembles of Screening Rules',
    'url': 'https://github.com/nicococo/AdaScreen',
    'author': 'Nico Goernitz',
    'author_email': 'nico.goernitz@tu-berlin.de',
    'version': '2016.12.21',
    'install_requires': ['nose', 'scikit-learn', 'numpy', 'multiprocessing',
                         'drmaa', 'psutil', 'pyzmq'],
    'packages': ['adascreen', 'adascreen_experiments', 'clustermap'],  # names of the packages
    'package_dir': {'adascreen' : 'adascreen',
                    'clustermap' : 'clustermap',
                    'adascreen_experiments' : 'scripts'},  # locations of the actual package in the source tree
    'scripts': ['bin/adascreen_experiment.sh'],
    'ext_modules' : cythonize([Extension("adascreen/enet_solver",["adascreen/enet_solver.pyx"],
        include_dirs=[np.get_include()])]),
    'classifiers':['Intended Audience :: Science/Research',
                   'Programming Language :: Python',
                   'Topic :: Scientific/Engineering',
                   'Operating System :: POSIX',
                   'Operating System :: Unix',
                   'Operating System :: MacOS',
                   'Programming Language :: Python :: 2',
                   'Programming Language :: Python :: 2.7']
}

setup(**config)
<|endoftext|>


<commit_before>from setuptools import setup
from setuptools import find_packages

with open('README.rst') as f:
    LONG_DESCRIPTION = f.read()
MAJOR_VERSION = '0'
MINOR_VERSION = '10'
MICRO_VERSION = '189'
VERSION = "{}.{}.{}".format(MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION)

setup(name='yagmail',
      version=VERSION,
      description='Yet Another GMAIL client',
      long_description=LONG_DESCRIPTION,
      url='https://github.com/kootenpv/yagmail',
      author='Pascal van Kooten',
      author_email='kootenpv@gmail.com',
      license='MIT',
      extras_require={
          "all": ["keyring"]
      },
      keywords='email mime automatic html attachment',
      entry_points={
          'console_scripts': ['yagmail = yagmail.__main__:main']
      },
      classifiers=[
          'Environment :: Console',
          'Intended Audience :: Developers',
          'Intended Audience :: Customer Service',
          'Intended Audience :: System Administrators',
          'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
          'Operating System :: Microsoft',
          'Operating System :: MacOS :: MacOS X',
          'Operating System :: Unix',
          'Operating System :: POSIX',
          'Programming Language :: Python',
          'Programming Language :: Python :: 2.7',
          'Programming Language :: Python :: 3',
          'Programming Language :: Python :: 3.3',
          'Programming Language :: Python :: 3.4',
          'Programming Language :: Python :: 3.5',
          'Topic :: Communications :: Email',
          'Topic :: Communications :: Email :: Email Clients (MUA)',
          'Topic :: Software Development',
          'Topic :: Software Development :: Build Tools',
          'Topic :: Software Development :: Debuggers',
          'Topic :: Software Development :: Libraries',
          'Topic :: Software Development :: Libraries :: Python Modules',
          'Topic :: System :: Software Distribution',
          'Topic :: System :: Systems Administration',
          'Topic :: Utilities'
      ],
      packages=find_packages(),
      zip_safe=False,
      platforms='any')
<commit_msg>Specify MIT License in `classifiers`.<commit_after>from setuptools import setup
from setuptools import find_packages

with open('README.rst') as f:
    LONG_DESCRIPTION = f.read()
MAJOR_VERSION = '0'
MINOR_VERSION = '10'
MICRO_VERSION = '189'
VERSION = "{}.{}.{}".format(MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION)

setup(name='yagmail',
      version=VERSION,
      description='Yet Another GMAIL client',
      long_description=LONG_DESCRIPTION,
      url='https://github.com/kootenpv/yagmail',
      author='Pascal van Kooten',
      author_email='kootenpv@gmail.com',
      license='MIT',
      extras_require={
          "all": ["keyring"]
      },
      keywords='email mime automatic html attachment',
      entry_points={
          'console_scripts': ['yagmail = yagmail.__main__:main']
      },
      classifiers=[
          'Environment :: Console',
          'Intended Audience :: Developers',
          'Intended Audience :: Customer Service',
          'Intended Audience :: System Administrators',
          'License :: OSI Approved :: MIT License',
          'Operating System :: Microsoft',
          'Operating System :: MacOS :: MacOS X',
          'Operating System :: Unix',
          'Operating System :: POSIX',
          'Programming Language :: Python',
          'Programming Language :: Python :: 2.7',
          'Programming Language :: Python :: 3',
          'Programming Language :: Python :: 3.3',
          'Programming Language :: Python :: 3.4',
          'Programming Language :: Python :: 3.5',
          'Topic :: Communications :: Email',
          'Topic :: Communications :: Email :: Email Clients (MUA)',
          'Topic :: Software Development',
          'Topic :: Software Development :: Build Tools',
          'Topic :: Software Development :: Debuggers',
          'Topic :: Software Development :: Libraries',
          'Topic :: Software Development :: Libraries :: Python Modules',
          'Topic :: System :: Software Distribution',
          'Topic :: System :: Systems Administration',
          'Topic :: Utilities'
      ],
      packages=find_packages(),
      zip_safe=False,
      platforms='any')
<|endoftext|>


<commit_before>from codecs import open as codecs_open
from setuptools import setup, find_packages

# Get the long description from the relevant file
with codecs_open('README.md', encoding='utf-8') as f:
    long_description = f.read()

setup(name='ninjag',
      version='0.1.3',
      description=u"Ninja config file generator",
      long_description=long_description,
      keywords='',
      author=u"Steven(Yuhang) Wang",
      url='https://github.com/yuhangwang/ninjag-python',
      license='MIT',
      packages=find_packages(exclude=['test']),
      include_package_data=True,
      zip_safe=False,
      install_requires=[
          'PyYAML',
          'typing'
      ],
      extras_require={
          'test': ['pytest'],
      },
      entry_points={
          'console_scripts': [
                  'ninjag = ninjag.cli:cli'
              ],
      }
      )
<commit_msg>update setup.py to 0.1.3.1<commit_after>from codecs import open as codecs_open
from setuptools import setup, find_packages

# Get the long description from the relevant file
with codecs_open('README.md', encoding='utf-8') as f:
    long_description = f.read()

setup(name='ninjag',
      version='0.1.3.1',
      description=u"Ninja config file generator",
      long_description=long_description,
      keywords='',
      author=u"Steven(Yuhang) Wang",
      url='https://github.com/yuhangwang/ninjag-python',
      license='MIT',
      packages=find_packages(exclude=['test']),
      include_package_data=True,
      zip_safe=False,
      install_requires=[
          'PyYAML',
          'typing'
      ],
      extras_require={
          'test': ['pytest'],
      },
      entry_points={
          'console_scripts': [
                  'ninjag = ninjag.cli:cli'
              ],
      }
      )
<|endoftext|>


<commit_before>#!/usr/bin/env python
# coding: utf-8

import park
import sys

# Require setuptools. See http://pypi.python.org/pypi/setuptools for
# installation instructions, or run the ez_setup script found at
# http://peak.telecommunity.com/dist/ez_setup.py
from setuptools import setup, find_packages, Command

class CheckCommand(Command):
    description = "Run tests."
    user_options = []

    def initialize_options(self):
        pass

    def finalize_options(self):
        pass

    def run(self):
        import subprocess

        print "Running pep8..."
        if subprocess.call(["pep8", "park.py", "test_park.py"]):
            sys.exit("ERROR: failed pep8 checks")

        print "Running pyflakes..."
        if subprocess.call(["pyflakes", "park.py", "test_park.py"]):
            sys.exit("ERROR: failed pyflakes checks")

        print "Running tests..."
        if subprocess.call(["coverage", "run", "--source=park,test_park",
                            "./setup.py", "test"]):
            sys.exit("ERROR: failed unit tests")

        subprocess.call(['coverage', 'report', '-m'])

setup(
    name="park",
    version=park.__version__,
    author="Peter Teichman",
    author_email="pteichman@litl.com",
    license="MIT",
    url = "https://github.com/litl/park",
    description="A key-value store with ordered traversal of keys",
    py_modules=["park"],
    test_suite="test_park",

    cmdclass = {
        "check": CheckCommand
        },

    classifiers = [
        "Development Status :: 5 - Production/Stable",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
        "Programming Language :: Python"
        ]
)
<commit_msg>Add unittest2 and coverage to tests_require<commit_after>#!/usr/bin/env python
# coding: utf-8

import park
import sys

# Require setuptools. See http://pypi.python.org/pypi/setuptools for
# installation instructions, or run the ez_setup script found at
# http://peak.telecommunity.com/dist/ez_setup.py
from setuptools import setup, find_packages, Command

class CheckCommand(Command):
    description = "Run tests."
    user_options = []

    def initialize_options(self):
        pass

    def finalize_options(self):
        pass

    def run(self):
        import subprocess

        print "Running pep8..."
        if subprocess.call(["pep8", "park.py", "test_park.py"]):
            sys.exit("ERROR: failed pep8 checks")

        print "Running pyflakes..."
        if subprocess.call(["pyflakes", "park.py", "test_park.py"]):
            sys.exit("ERROR: failed pyflakes checks")

        print "Running tests..."
        if subprocess.call(["coverage", "run", "--source=park,test_park",
                            "./setup.py", "test"]):
            sys.exit("ERROR: failed unit tests")

        subprocess.call(['coverage', 'report', '-m'])

setup(
    name="park",
    version=park.__version__,
    author="Peter Teichman",
    author_email="pteichman@litl.com",
    license="MIT",
    url = "https://github.com/litl/park",
    description="A key-value store with ordered traversal of keys",
    py_modules=["park"],
    test_suite="test_park",

    cmdclass = {
        "check": CheckCommand
        },

    tests_require = {
        "unittest2==0.5.1",
        "coverage==3.5.2"
        },

    classifiers = [
        "Development Status :: 5 - Production/Stable",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
        "Programming Language :: Python"
        ]
)
<|endoftext|>


<commit_before>import imp
import os
from setuptools import setup, find_packages

version = imp.load_source(
    'mlflow.version', os.path.join('mlflow', 'version.py')).VERSION

# Get a list of all files in the JS directory to include in our module
def package_files(directory):
    paths = []
    for (path, directories, filenames) in os.walk(directory):
        for filename in filenames:
            paths.append(os.path.join('..', path, filename))
    return paths

# Prints out a set of paths (relative to the mlflow/ directory) of files in mlflow/server/js/build
# to include in the wheel, e.g. "../mlflow/server/js/build/index.html"
js_files = package_files('mlflow/server/js/build')
sagmaker_server_files = package_files("mlflow/sagemaker/container")

setup(
    name='mlflow',
    version=version,
    packages=find_packages(exclude=['tests', 'tests.*']),
    package_data={"mlflow": js_files + sagmaker_server_files},
    install_requires=[
        'click>=7.0',
        'cloudpickle==0.6.1',
        'databricks-cli>=0.8.0',
        'requests>=2.17.3',
        'six>=1.10.0',
        'gunicorn',
        'Flask',
        'numpy',
        'pandas',
        'scipy',
        'scikit-learn',
        'python-dateutil',
        'protobuf>=3.6.0',
        'gitpython>=2.1.0',
        'pyyaml',
        'boto3>=1.7.12',
        'querystring_parser',
        'simplejson',
        'mleap>=0.8.1',
        'cloudpickle',
        'docker>=3.6.0',
        'entrypoints',
        'sqlparse',
    ],
    entry_points='''
        [console_scripts]
        mlflow=mlflow.cli:cli
    ''',
    zip_safe=False,
    author='Databricks',
    description='MLflow: An ML Workflow Tool',
    long_description=open('README.rst').read(),
    license='Apache License 2.0',
    classifiers=[
        'Intended Audience :: Developers',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.6',
    ],
    keywords='ml ai databricks',
    url='https://mlflow.org/'
)
<commit_msg>Resolve cloudpickle version in setup.py with test-requirements.txt (#1046)<commit_after>import imp
import os
from setuptools import setup, find_packages

version = imp.load_source(
    'mlflow.version', os.path.join('mlflow', 'version.py')).VERSION

# Get a list of all files in the JS directory to include in our module
def package_files(directory):
    paths = []
    for (path, directories, filenames) in os.walk(directory):
        for filename in filenames:
            paths.append(os.path.join('..', path, filename))
    return paths

# Prints out a set of paths (relative to the mlflow/ directory) of files in mlflow/server/js/build
# to include in the wheel, e.g. "../mlflow/server/js/build/index.html"
js_files = package_files('mlflow/server/js/build')
sagmaker_server_files = package_files("mlflow/sagemaker/container")

setup(
    name='mlflow',
    version=version,
    packages=find_packages(exclude=['tests', 'tests.*']),
    package_data={"mlflow": js_files + sagmaker_server_files},
    install_requires=[
        'click>=7.0',
        'cloudpickle',
        'databricks-cli>=0.8.0',
        'requests>=2.17.3',
        'six>=1.10.0',
        'gunicorn',
        'Flask',
        'numpy',
        'pandas',
        'scipy',
        'scikit-learn',
        'python-dateutil',
        'protobuf>=3.6.0',
        'gitpython>=2.1.0',
        'pyyaml',
        'boto3>=1.7.12',
        'querystring_parser',
        'simplejson',
        'mleap>=0.8.1',
        'docker>=3.6.0',
        'entrypoints',
        'sqlparse',
    ],
    entry_points='''
        [console_scripts]
        mlflow=mlflow.cli:cli
    ''',
    zip_safe=False,
    author='Databricks',
    description='MLflow: An ML Workflow Tool',
    long_description=open('README.rst').read(),
    license='Apache License 2.0',
    classifiers=[
        'Intended Audience :: Developers',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.6',
    ],
    keywords='ml ai databricks',
    url='https://mlflow.org/'
)
<|endoftext|>