Skip to main content

A python library for degree calculations and conversions.

Project description

degrees V0.4.1a0

Contents

  • Introduction
  • Importing
  • Class
    • Degree
  • Functions
    • degree2radian
    • radian2degree
    • normalize
  • Changelog

Introduction

A python library for degree calculations and conversions.

🟩 Added in version 0.2: Supported pickle.

Installing

Python version Windows MacOS / Linux
3.8 or 3.9 python -m pip install degrees==0.3.0.post1 pip3 install degrees==0.3.0.post1
3.10+ python -m pip install degrees pip3 install degrees

If you use python 3.8 or 3.9, please read the docs here.

Importing

Just type import degrees.

Class

  • class degrees.Degree(number)
    class degrees.Degree(degree_obj)
    class degrees.Degree(degree=0, minute=0, second=0)

    • Creating a Degree object

import degrees

print(degrees.Degree(1))  # 1°
print(degrees.Degree(2, 3, 4))  # 2°3'4"
print(degrees.Degree(1, second=2))  # 1°0'2"
print(degrees.Degree(1, 3))  # 1°3'
print(degrees.Degree(0, -1))  # -1'
print(degrees.Degree(1.5))  # 1°30'
print(degrees.Degree(2, -4))  # ValueError: if degree is not 0, minute and second must be positive integer
  • calculating:

    comprehensions type(a) type(b) return type
    a + b Degree int | float Degree
    int | float Degree Degree
    a - b Degree int | float Degree
    int | float Degree Degree
    a * b Degree int | float Degree
    int | float Degree Degree
    Degree Degree Degree
    a / b Degree Degree float
    Degree int | float Degree
    math.trunc(a) Degree / Degree
    abs(a) Degree / Degree
    math.ceil(a) Degree / Degree
    math.floor(a) Degree / Degree
    a % b Degree Degree Degree
    a // b Degree Degree int
    Degree int | float Degree
    +a Degree / Degree
    -a Degree / Degree
    hash(a) Degree / int

    🟩 Added in version 0.1.7: Implemented the math.trunc function on the Degree objects.

    🟩 Added in version 0.4.0: Now deg_obj * float_obj is supported. In the previous version, only deg_obj * int_obj is supported.

    🟥 Deprecated since version 0.4.0, will be removed in version 0.5.0: Degree_obj * Degree_obj is deprecated because it is useless and strange.

  • conversions:

    int(a) float(a) str(a) repr(a) bool(a) complex(a)

    In the table above, type(a) is Degree.

    The complex(degree_obj) is different from degree_obj.to_complex(length). The former returns int(degree_obj)+0j, but the latter returns complex(length * cos(theta), length * sin(theta)), theta=degree2radian(degree_obj).

For example:

import degrees
a = degrees.Degree(45)
print(complex(a))  # (45+0j)
print(a.to_complex(2 ** 0.5))  # about (1+1j)
  • comparisons:

    comprehensions type(a) type(b)
    a >= b Degree Degree | int | float
    a > b Degree Degree | int | float
    a == b Degree Any
    a <= b Degree Degree | int | float
    a < b Degree Degree | int | float
    a != b Degree Any

    In the table above, the return value is bool, type(a) and type(b) can be swapped.

  • staticmethod from_str(string)

    Return a degree object from a string. The dms characters should be °, ' and ".

  • staticmethod from_unicode(string)

    Similar to from_str, but the dms characters should be °, and .

    🟩 Added in version 0.1.10.

  • staticmethod from_iter(iterable)

    Return a degree object from an iterable.

  • property total_seconds

    The total seconds of a degree object.

  • deg

    The degree of a degree object(without sign).

  • min

    The minute of a degree object(without sign).

  • sec

    The second of a degree object(without sign).

  • sign

    The sign of a degree object.

  • to_complex(length: int | float)

    Returns the complex number corresponding to (angle=self, radius=length).

    🟩 Added in version 0.2.1.

  • property dms

    A tuple of (degree, minute, second).

Note

The attributes of Degree are read-only.

Functions

def degree2radian(x: Degree, /)

  • Convert angle x from a degree object to radians.

def radian2degree(x: int | float, /)

  • Convert angle x from radians to a degree object.

def normalize(x: Degree, /)

  • Be using for angle normalization.

Version

version_info

Consts

DEGREE
MINUTE
SECOND

Equals to °, and .

Changelog

  1. Supported Degree_obj * float_obj.
  2. Optimized from_str and from_unicode.
  3. Raised DeprecatedWarning when using Degree_obj * Degree_obj.

Write in the end

If you found the bug in the code, you can email me at snake830@vip.163.com. I am happy to receive the advice!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

degrees-0.4.1a0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

degrees-0.4.1a0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file degrees-0.4.1a0.tar.gz.

File metadata

  • Download URL: degrees-0.4.1a0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for degrees-0.4.1a0.tar.gz
Algorithm Hash digest
SHA256 0708e01f4a9f6d720684be8f3f1cb530f7cbd6620e585684c71eae58c420e74e
MD5 48c867b8dc2dcc51ea7f94c0f65419f3
BLAKE2b-256 e94a494fd448d585fb3287aa3b4863641f377fadb86857e9910fdb99b58f5afd

See more details on using hashes here.

File details

Details for the file degrees-0.4.1a0-py3-none-any.whl.

File metadata

  • Download URL: degrees-0.4.1a0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for degrees-0.4.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 e15179f8e2a92d8447639ffa69091dd2c4c4f9dc75cb77e9bb7e28c587b2313a
MD5 0c3b3e87e6518c09e025e4aca5fd3f38
BLAKE2b-256 d5fa0aeacf6debcd377821e35ddd5338db5b8c23e01d68fc3dcbe9b815e6dd7b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page