Skip to main content

A python library for degree calculations and conversions.

Project description

degrees V0.4.1a1

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:

    expressions 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:

    expressions 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.

  • total_seconds

    The total seconds of a degree object.

  • property deg

    The degree of a degree object(without sign).

  • property min

    The minute of a degree object(without sign).

  • property sec

    The second of a degree object(without sign).

  • property 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

degrees.degree2radian(x: Degree, /)

  • Convert angle x from a degree object to radians.

degrees.radian2degree(x: int | float, /)

  • Convert angle x from radians to a degree object.

degrees.normalize(x: Degree, /)

  • Used for angle normalization.

Version

version_info

Consts

DEGREE
MINUTE
SECOND

Equals to °, and .

__author__

The author of this package.

Changelog

  1. Changed deg, min, sec and sign to property.
  2. Added __author__.

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.1a1.tar.gz (11.2 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.1a1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: degrees-0.4.1a1.tar.gz
  • Upload date:
  • Size: 11.2 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.1a1.tar.gz
Algorithm Hash digest
SHA256 870e33555cb9a326c5e36851a042d1fb659aa7a37fe145b2ba4ed50541663a5f
MD5 055a5b244b7edabd49eb4fec72d4ea15
BLAKE2b-256 0bae7e18707c75f5aa89e80b9ef7bb9d3b749a1383624d277388df92dfad2495

See more details on using hashes here.

File details

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

File metadata

  • Download URL: degrees-0.4.1a1-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.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 559b92824ad9ac73bff011ac5323eb232f2869c348eb57204f54b1990e626027
MD5 220645175b6a686d92186a72fe313e68
BLAKE2b-256 ac918f0d82627bc5366cfb83d297b822de91f148656f735dea17f0781eabba77

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