login page

This commit is contained in:
Alicja Cięciwa
2020-10-27 12:57:58 +01:00
commit cb8886666c
8545 changed files with 1082463 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
from __future__ import absolute_import, unicode_literals
from abc import ABCMeta, abstractmethod
from six import add_metaclass
@add_metaclass(ABCMeta)
class Discover(object):
"""Discover and provide the requested Python interpreter"""
@classmethod
def add_parser_arguments(cls, parser):
"""Add CLI arguments for this discovery mechanisms.
:param parser: the CLI parser
"""
raise NotImplementedError
# noinspection PyUnusedLocal
def __init__(self, options):
"""Create a new discovery mechanism.
:param options: the parsed options as defined within :meth:`add_parser_arguments`
"""
self._has_run = False
self._interpreter = None
@abstractmethod
def run(self):
"""Discovers an interpreter.
:return: the interpreter ready to use for virtual environment creation
"""
raise NotImplementedError
@property
def interpreter(self):
"""
:return: the interpreter as returned by :meth:`run`, cached
"""
if self._has_run is False:
self._interpreter = self.run()
self._has_run = True
return self._interpreter