Metadata-Version: 2.1
Name: Economical
Version: 1.5.6
Summary: library
Home-page: https://Economics.readthedocs.io/
Author: Ayush Gogne
Author-email: ayushgogne23@gmail.com
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: typing

#microeconomics sublibrary

from typing import Union



def index(givenperiodvalue, baseperiodvalue):

    """

    calculates the index number of any given period.



    :param givenperiodvalue:

    :param baseperiodvalue:

    :return: indexnumber

    """

    return ((abs(givenperiodvalue)) // (abs(baseperiodvalue))) * 100





class elasticity:



    @staticmethod

    def PriceEofDemand(q1,q2,p1,p2):

        """



        :param q1: quantity demanded 1

        :param q2: quantity demanded 2

        :param p1: price 1

        :param p2: price 2

        :return: E



        """

        #Percentage change in quantity demanded

        changeinQ = q2 - q1

        averageQ = (q1 + q2) / 2

        numerator = (changeinQ) / (averageQ)



        #percentage change in price

        changeinP = p2 - p1

        averageP = (p1 + p2) / 2

        denominator = (changeinP) / (averageP)



        #overall calculation

        E = numerator / denominator



        return E



    @staticmethod

    def PriceEofSupply(s1, s2, p1, p2):

        """



        :param s1: quantity supplied 1

        :param s2: quantity supplied 2

        :param p1: price 1

        :param p2: price 2

        :return: E



        """

        # Percentage change in quantity supplied

        changeinQ = s2 - s1

        averageQ = (s1 + s2) / 2

        numerator = (changeinQ) / (averageQ)



        # percentage change in price

        changeinP = p2 - p1

        averageP = (p1 + p2) / 2

        denominator = (changeinP) / (averageP)



        # overall calculation

        E = numerator / denominator



        return E



    @staticmethod

    def CrossEofDemand(q1x, q2x, p1y, p2y):

        """



        :param q1x: quantity demanded 1 of good x

        :param q2x: quantity demanded 2 of good x

        :param p1y: price 1 of good y

        :param p2y: price 2 of good y

        :return: E



        """

        # Percentage change in quantity demanded of good x

        changeinQ = q2x - q1x

        averageQ = (q1x + q2x) / 2

        numerator = (changeinQ) / (averageQ)



        # percentage change in price

        changeinP = p2y - p1y

        averageP = (p1y + p2y) / 2

        denominator = (changeinP) / (averageP)



        # overall calculation

        E = numerator / denominator



        return E







class cost:

    @staticmethod

    def average_total_cost(**kwargs: Union[int, None]):

        """



        :param kwargs: dictionary of parameters, to be passed as (atc = value, avc = value)

        to solve for a variable, provide two values and pass the variable to find with None as its value

        :return: ATCVAR, dictionary of values

        """

        if kwargs.get("afc") == None:

            valueafc = kwargs["atc"] - kwargs["avc"]

            resultkwargs = kwargs.update({"afc" : valueafc})

            return resultkwargs



        elif kwargs.get("avc") == None:

            valueavc = kwargs["atc"] - kwargs["afc"]

            resultkwargs = kwargs.update({"avc": valueavc})

            return resultkwargs



        elif kwargs.get("atc") == None:

            valueatc = kwargs["afc"] + kwargs["avc"]

            resultkwargs = kwargs.update({"atc": valueatc})

            return resultkwargs







    @staticmethod

    def marginal_cost(tc1: float,tc2: float,q1: float,q2: float):

        """



        :param tc1: totalcost 1

        :param tc2: totalcost 2

        :param q1: quantity 1

        :param q2: quantity 2

        :return: MC

        """



        #change in tc

        changetc = tc2 - tc1



        #change in q

        changeq = q2 - q1



        #overall calculation

        MC = (changetc)/(changeq)



        return MC



    @staticmethod

    def economic_profit(revenue: float, explicitcosts: float, implicitcosts: float):

        """



        :param revenue: income

        :param explicitcosts: costs from spending

        :param implicitcosts: costs in terms of oppurtunity cost

        :return: EP

        """



        #overall calculation

        EC = revenue - ((explicitcosts) + (implicitcosts))

        return EC





class definitions:

    def __init__(self):

        self.economics = " the study of the use of scarce resources to satisfy unlimited human wants"

        self.factors_of_production = "resources used to produce goods and services"

        self.labour = "mental and physics human resources"

        self.capital = "all manufactured aids to production such as tools machinery and buildings"

        self.opportunity_cost = """the value of the next best alternative that is forgone when one alternative is chosen.

Ratio of cost of obtaining one product to number of units that could have been obtained instead"""

