Skip to main content

Wage calculator module

Module for salary calculations and conversions

Installation

Use the following command to install the wage module from PyPi with pip:

pip install wage

Or to install the latest version of the repository with pip:

pip install git+https://github.com/miliarch/wage.git

Or you can clone this repository to your system:

git clone https://github.com/miliarch/wage.git

Usage - Salary object

Import the Salary class:

>>> from salary import Salary

Create a new salary object - in this example, base the salary on $15 per hour:

>>> s = Salary(15, 'hour')

Access properties (hourly, daily, etc.) as needed:

>>> s.hourly.decimal
Decimal('15')
>>> s.hourly.dollars
'$15.00'
>>> s.hours_in_year
2080

Help and examples

Help on class Salary in module salary.salary:

class Salary(builtins.object)
 |  Salary(*args, **kwargs)
 |
 |  Class for calculation and conversion of salary by time period
 |
 |  Methods defined here:
 |
 |  __init__(self, *args, **kwargs)
 |      Salary initialization
 |
 |      Arguments:
 |          args[0]: required: salary amount (float)
 |          args[1]: required: salary amount period (string)
 |                   valid options: [hour|day|week|fortnight|month|quarter|semester|year]
 |
 |      Keyword arguments:
 |          kwargs['hours']: custom hours in year (int) (default: 2080)
 |          kwargs['days']: custom days in year (int) (default: 260)
 |          kwargs['weeks']: custom weeks in year (int) (default: 52)
 |          kwargs['fortnights']: custom fortnights in year (int) (default: 26)
 |          kwargs['months']: custom months in year (int) (default: 12)
 |          kwargs['quarters']: custom quarters in year (int) (default: 4)
 |          kwargs['semesters']: custom semesters in year (int) (default: 2)
 |
 |      Examples:
 |          Salary(15, 'hour')
 |          Salary(31200, 'year')
 |          Salary(15, 'hour', hours=1040, days=130, weeks=26)
 |
 |  __repr__(self)
 |      Return repr(self).
 |
 |  __str__(self)
 |      Return str(self).
 |
 |  per_period(self, amount, period, operation=<built-in function truediv>)
 |      Calculate amount per given period using operation callback function
 |
 |      Parameters:
 |          amount: required: the amount to base calculation on (Decimal)
 |          period: required: the period to use for the calculation (str)
 |          operation: optional: which operator to use against (amount, period) (function)
 |
 |  ----------------------------------------------------------------------
 |  Readonly properties defined here:
 |
 |  daily
 |
 |  fortnightly
 |
 |  hourly
 |
 |  monthly
 |
 |  quarterly
 |
 |  semesterly
 |
 |  weekly
 |
 |  yearly
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __dict__
 |      dictionary for instance variables (if defined)
 |
 |  __weakref__
 |      list of weak references to the object (if defined)

Usage - command line interface

The command line interface is mainly for demonstration purposes. If you find it helpful, feel free to use it.

The wage entrypoint uses a similar convention to passing arguments in during a new Salary object instantiation.

Examples:

$ wage 15 hour
Hourly         : $15.00
Daily          : $120.00
Weekly         : $600.00
Fortnightly    : $1,200.00
Monthly        : $2,600.00
Quarterly      : $7,800.00
Semesterly     : $15,600.00
Yearly         : $31,200.00
$ wage 15 hour hours=1500
Hourly         : $15.00
Daily          : $86.54
Weekly         : $432.69
Fortnightly    : $865.38
Monthly        : $1,875.00
Quarterly      : $5,625.00
Semesterly     : $11,250.00
Yearly         : $22,500.00

Release files for wage 0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wage 0.7
File Size Uploaded
wage-0.7.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wage 0.7
File Interpreter ABI Platform
wage-0.7-py3-none-any.whl Python 3 none any Details

Total release size: 15.6 kB

Release files / wage-0.7.tar.gz

Download URL wage-0.7.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ce66a392145fb02e8afa8274b751657f94c72894b78893f9b55b88d45c12e839
BLAKE2b-256 checksum
How to use checksums
e8496f3abe98586f87929a23396b3434456cf7d963a9d01384920a8d077c98ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / wage-0.7-py3-none-any.whl

Download URL wage-0.7-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d97a30f0a7d048b6c83019675aae039200eab2871aad5ccb61c74329f510766e
BLAKE2b-256 checksum
How to use checksums
7e61fc028f248a84e716fb817eea017d7c702b0ca2f611dee2a6c8e490387a5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

This release

0.7 This release

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page