Sha256: 3252007251c251c2ce65144bb669fb38df0869cc84f35314c082c75551db7516

Contents?: true

Size: 796 Bytes

Versions: 258

Compression:

Stored size: 796 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):
        valid = len(number) == 10 or \
            len(number) == 11 and number.startswith('1')

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

Version data entries

258 entries across 258 versions & 1 rubygems

Version Path
trackler-2.2.1.40 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.39 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.38 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.37 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.36 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.35 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.34 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.33 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.32 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.31 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.30 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.29 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.28 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.27 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.26 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.25 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.24 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.23 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.22 tracks/python/exercises/phone-number/example.py
trackler-2.2.1.21 tracks/python/exercises/phone-number/example.py