Sha256: fe8be36ef46f9ffa8dddf26208a49b752c81429eda8ed9a44651767ad6bb2cd1

Contents?: true

Size: 893 Bytes

Versions: 20

Compression:

Stored size: 893 Bytes

Contents

import re


class Phone(object):
    def __init__(self, number):
        self.number = self._clean(number)

    def area_code(self):
        return self.number[:3]

    def exchange_code(self):
        return self.number[3:6]

    def subscriber_number(self):
        return self.number[-4:]

    def pretty(self):
        return "(%s) %s-%s" % (
            self.area_code(),
            self.exchange_code(),
            self.subscriber_number()
        )

    def _clean(self, number):
        return self._normalize(
            re.sub(r'[^\d]', '', number)
        )

    def _normalize(self, number):
        if len(number) == 10 or len(number) == 11 and number.startswith('1'):
            valid = number[-10] in "23456789" and number[-7] in "23456789"
        else:
            valid = False

        if valid:
            return number[-10:]
        else:
            return '0' * 10

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
trackler-2.2.1.60 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.59 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.58 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.57 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.56 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.55 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.54 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.53 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.52 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.51 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.50 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.49 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.48 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.47 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.46 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.45 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.44 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.43 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.42 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.41 tracks/python/exercises/phone-number/example.py