With over 100,000 members, the CII is the world's largest professional body dedicated to the insurance, savings and financial services sector.
So whether your requirements are personal or corporate in nature, please feel free to contact us for a free, no-obligation initial meeting.
Asa lives in Weymouth with his wife Rebecca and their two children Jasmine and Joshua. He joined us in May 2012 and has many years of experience in the financial services industry. Asa specialises in investments, pensions, long term care and financial planning.
Andrew lives just outside Christchurch with his partner Lisa and their two children Isabella and Jake. After leaving University, Andrew joined Edward Jones as a Financial Adviser and Stockbroker where he remained for eight years until the launch of Heritage Investments. Andrew specialises in investments, retirement and inheritance tax planning to help his clients meet their long term goals.
John lives in Ferndown with his wife Leigh and their three children Elise, Aaron and Claudia. He is an economics graduate from Loughborough University and before joining Heritage Investments was a Financial Adviser and Stockbroker with Edward Jones. John specialises in investments, pensions and long term care and is passionate about the ethics and professionalism of the advisory industry.
Sue has been in the financial services industry since 2001 and joined Heritage in November 2017 having previously worked for Harvard Financial Management. Sue particularly enjoys meeting clients and helping them manage their financial goals and retirement plans. She is keen to ensure that clients receive care, consideration and a professional advice service at all times.
Malcolm lives just outside Ringwood with his partner Sarah. He has worked in financial services for over 40 years, starting as "a man from the Pru" in 1976 to being principle of his own firm in Verwood.
Malcolm specialises in investment, retirement, inheritance and succession solutions and assisting his clients to achieve their financial confidence.
Jane joined us in March 2013 after more than 28 years working for BT. During this time she had many varied roles within billing, sales and credit control, before deciding to take voluntary redundancy.
She enjoys the change from working within a large corporation to being with a small and growing firm and having personal contact with clients.
Roger lives in Poole and is married with two daughters. He joined Heritage Investments in May 2017, coming from the Financial Ombudsman Service, where he spent the last 13 years as an adjudicator. Prior to working at the ombudsman, he spent 15 years as qualified financial adviser, with 10 of those at major high street bank.
During his time at the ombudsman he investigated and resolved complaints involving a wide range of financial services products, and with his experience advising on investments, pensions and protection products, he is well placed to take up his new role as operations and compliance manager.
Sheanna joined Heritage Investments in July this year, working part time at the Wimborne Office alongside Karen. For the past 15 years she has worked with a Marine Medical Repatriation Company.
Sandra relocated from London in 2013 to Southbourne where she lives with her husband and two young children. She joined Heritage in November 2017 having previously worked for MPA Financial Management and in a variety of roles within asset management firms in London, latterly as a Senior Client Services Associate at Insight Investment.
Felicity Turner is a Finance Administrator at our Christchurch office. Prior to joining our team in May 2015, she worked at Capita in Bournemouth, a life and pensions outsourcing company. Before Capita, Felicity worked for RIAS Insurance as a Customer Service Adviser.
Jess joined Heritage Investments in September 2018 as a Paraplanner having worked in the financial services industry for five years for both large and small IFA firms. She is keen to build on her experience and knowledge in the role and is currently working towards becoming Chartered.
Tom joined the Heritage team in April 2018 as a Finance Administrator in our Christchurch office, having worked for four years for Old Mutual Wealth in Southampton dealing mainly with investments. He holds a bachelor's degree in Law from Southampton Solent University and graduated in 2015.
Karen worked for Barclays International for 25 years, initially in London before moving to their offices in Poole. She left Barclays to set up her own business running a café in Wimborne for a number of years, before joining Edward Jones in Wimborne in 2007.
Karen was delighted to have the opportunity of joining the Heritage team and to continue using her financial administration expertise. As Karen lives in Wimborne, she was very pleased to take up the Administrator position in our new office.
Amelia relocated from Salisbury in July this year to Bournemouth, where she lives with her partner. She joined our Christchurch office in August as a Finance Administrator, having worked for three years for a pension provider in Salisbury.
Ros relocated from the West Midlands to Poole where she lives with her husband Gary and daughter Ella. She has worked in the financial services industry for over 20 years, gaining wide experience in all aspects of financial planning. She has been a Paraplanner for 8 years; working with IFAs in the Midlands and holds the full financial planning certificates.
Tom joined Heritage Investments at the end of 2016 having left Twynham Sixth Form where he was Head Boy. During his schooling he completed the National Citizen Service course which inspired him to get out more and see what the world has to offer.
Tom is the first Financial Adviser Apprentice in the UK under the Department for Education approved specialist Financial Adviser apprenticeship standard and hopes to become the first fully qualified financial adviser through the scheme.
Scott works as the administrator in our Wimborne office having joined us in April 2016. Scott brings with him considerable knowledge of pensions and investment administration having previously worked for the James Hay Partnership and Rowanmoor Pensions in Salisbury, where he used to live. He is currently working toward the Diploma in Regulated Financial Planning.
Sarah lives in Christchurch with her husband Scott and their son Max. She joined our team in July 2012 as a Paraplanner and has over 17 years' experience in Financial Services. Before Heritage Investments, Sarah was a Senior Administrator with Capita SIPP Services, where she coordinated the purchase and transfers of commercial properties.
She was promoted to Independent Financial Adviser in October 2014 having gained her Diploma in Financial Planning. She now works with existing and new clients, helping them to meet their long term financial goals.
Stephanie worked for Halifax bank for 11 years, with a further 12 years working for an Independent Financial Adviser dealing with pensions and investments. Stephanie joined the Heritage team in November 2017 as a Finance Administrator in our Christchurch office.
Jane lives in Christchurch with her partner Alan. She has been with Heritage Investments from the start and has an expert knowledge of systems and administration. Jane previously worked in the Ringwood branch of Edward Jones Investments, where she gained a detailed understanding of the world of finance.
She was delighted to be asked to join Heritage Investments and thoroughly enjoys the variety in her role, particularly the personal contact with clients and assisting with the day-to-day tasks of managing the business.
Steve lives in Ringwood with his wife Alison. He has been employed in Financial Services since 1986, and as a Financial Adviser since 1997. Steve specialises in investments and retirement planning and enjoys working with clients in order to achieve their financial aims and objectives.


Grippers provide up to 180 degrees of angular jaw travel allowing the grippers to completely retract from the work area eliminating another required axis of travel.
Compact design with large stroke..
Jaw Rotations can be adjusted from 0-90 degrees to allow the gripper to be custom fit to each application.
Piston seals are quad-ring type for long service life.
The gripper body has two mounting surfaces with dowl pin holes to provide accurate mounting in a variety of positions.
AGA is fully field repairable for cost savings and minimum down time.


First National Bank of Pennsylvania and CyberCrunch are proud to bring you this opportunity to protect YOUR IDENTITY!
Don't miss this once a year opportunity.
Hard Drives, Computers, Laptops, Cell Phones and Tablets are the only items that will be accepted.


Inspirational Blessed to See Another Day Quotes Ideas – From the thousands of images on the internet in relation to blessed to see another day quotes, selects the top collections having greatest resolution just for you all, and this images is among pictures selections in your ideal photos gallery about Inspirational Blessed to See Another Day Quotes Ideas. Lets hope you'll think it's great.
put up by simply kerbcraft from 2018-09-11 20:34:55. To see most pictures with Inspirational Blessed to See Another Day Quotes Ideas pictures gallery you need to comply with this specific hyperlink.
Blessed To See Another Day Quotes New I Remind Myself Every Year On This Special Day How Blessed I Am To Uploaded by kerbcraft on Tuesday, September 11th, 2018 in category Inspirational Quotes.
See also Blessed To See Another Day Quotes Inspirational Happy Birthday To You from Inspirational Quotes Topic.
Here we have another image Blessed To See Another Day Quotes Fantastic 75 Most Beautiful God Quotes And Sayings featured under Blessed To See Another Day Quotes New I Remind Myself Every Year On This Special Day How Blessed I Am To. We hope you enjoyed it and if you want to download the pictures in high quality, simply right click the image and choose "Save As". Thanks for reading Blessed To See Another Day Quotes New I Remind Myself Every Year On This Special Day How Blessed I Am To.


text:
Photo: Matthew Welch
Elton John has called Rufus Wainwright "the greatest songwriter in the world today." Broken Record's Bruce Headlam sits down with Rufus in Los Angeles, where Rufus performs breathtaking solo versions of his songs "Poses" and "In My Arms" from his earliest albums. He also offers a new song, a lullaby for his young daughter. In conversation, he frankly discusses his crazy early life and the inspiration for his music, his move into opera and his relationship with Leonard Cohen, who is, among other things, the grandfather to Wainwright's daughter. He also discusses his newest single, "Sword of Damocles," which was inspired by Donald Trump and Carrie Fisher, and his upcoming tour, "All These Poses," featuring songs from his first two albums.
Frederick Jay "Rick" Rubin is an American record producer and former co-president of Columbia Records. Along with Russell Simmons, he is the co-founder of Def Jam Recordings and also established American Recordings.
Justin Richmond
Justin Richmond is the lead producer (and occasional host) of the music podcast Broken Record.
Bruce Headlam
Bruce Headlam is one of the co-founders and co-creators of the music podcast Broken Record.
Nas In Conversation with Rick Rubin
Rick Rubin connected with Nas recently to talk about his earliest experiences with rap in Queens, how recording his last album with Kanye West in Wyoming almost took him out of his zone, and how early beef with Jay-Z made them both stronger rappers.
Legendary Music Journalist Lisa Robinson
Rick Rubin speaks with friend, pioneering rock journalist, Lisa Robinson about her over 40 year career that's seen her interview everyone from John Lennon to Lady Gaga, from Jay Z to Eminem, and even an 11 year old Michael Jackson.
Singer/songwriter, pianist, alt-rocker Ben Folds has been releasing records since the 90s. Sometimes with his band Ben Folds Five, sometimes solo.
Dave Cobb: Nashville's Super Producer
Nashville producer Dave Cobb has earned six Grammys for his standout work with artists like Jason Isbell, Brandi Carlile and Chris Stapleton.
My Morning Jacket's Jim James
Jim James talks about and performs some songs off My Morning Jacket's "The Waterfall II."

redpajama_set_name: RedPajamaCommonCrawl


7 Original Episodes! The debut Season of Heartland Waterfowl clearly identifies the foundation of what makes this team unique. "HW" showcases a genuine and authentic waterfowl hunting experience, creatively through the lens of the camera. Each episode highlights the team's passion for scouting, while working together to strategize the most affective approach to the hunt. However, these guys have no shame in showing their mistakes and struggles, easily relatable to the passionate waterfowl hunter. As a product of the Award-Winning Heartland Bowhunter, HW strives to feature a unique format and high standard of production quality to outdoor television.
Heartland Waterfowl 1.1 "Maiden Voyage"
Team HW chase early season honkers when they travel to Western New York to meet up with good friend Chris Davanzo of Fish & Feathers Outfitters. Lake Ontario offers the HW Team a new experience when they set hooks on King Salmon to wrap up the trip.
Heartland Waterfowl 1.2 "Oh Canada"
The HW Team heads north North Dakota in October to catch the migration. Instead they catch many obstacles that present one of the most challenging trips of the year. However, the guys regroup and persevere with a second trip to North Dakota that they'll never forget.
Heartland Waterfowl 1.4 "South Texas"
Team HW accepts the invite to hunt ducks with their good friends from Lifetime Decoys in South Texas. Leaving the Midwest in mid-November, the warmer temperatures and Texas hospitality spoil the guys in their pursuit of little brown ducks.
Heartland Waterfowl 1.5 "The Big Island"
The HW Team receives an invite to hunt Mallards in SE Kansas with Roy Carter. The guys arrive during a strong cold front and a new flight of birds. So the guys head to the flooded timber, break ice and make it rain with a green noggin' grind-up!
Heartland Waterfowl 1.6 "Tornado Alley"
Team HW heads to Emporia, KS to hunt with good friends Brandon Mendoza and Jose Aranda of Tornado Alley Waterfowl. The guys arrive at the perfect time and stack up a pile of green heads and honkers.
The HW Team heads back to where it all started for them as waterfowlers by chasing the Mallards are Canada Geese in their own backyard. This is where they fired their first shotgun, blew their first duck call and killed their first waterfowl. Join Team HW as they go back to their roots.


text:
Read Next R. Kelly Pleads Not Guilty, Denied Bond on Federal Child Pornography Charges	Send Us a Tip	Subscribe
December 22, 2010 3:34PM ET
Remembering D. Boon and the Minutemen
Boon died twenty-five years ago today
Rob Sheffield
@robsheff	Follow
Rob Sheffield's Most Recent Stories
Mannequin Pussy Are Trying To Break Your Heart
Janet Weiss: Why the Drum Goddess Was the Heartbeat of Sleater-Kinney
Can a Beatles Fan Believe in 'Yesterday'?
It's always the right day to listen to the Minutemen, but especially this week, since it was 25 years ago today that the band's singer and guitarist D. Boon was killed in a van crash in Arizona. He was just 27. The Minutemen, one of the all-time great American punk bands, hailed from the blue-collar port town of San Pedro, California — Boon, bassist Mike Watt and drummer George Hurley. As D. Boon sang in the band's most famous song, "History Lesson Part 2," "Our band could be your life."
Boon and Watt had been best friends from childhood, and their shaggy, down-to-earth demeanor always came across in the corndog humor and political rage of their music. So their greatest records — What Makes a Man Start Fires?, Buzz or Howl Under The Influence of Heat, Double Nickels On The Dime — haven't dated a bit. They came out of the hardcore scene, bashing out rants and spiels that jumped right to the point. But they were also unabashed about rampaging through their versions of classic rock standards like Steely Dan's "Dr. Wu," Van Halen's "Ain't Talkin' 'Bout Love," or Creedence's "Have You Ever Seen the Rain."
Boon was an amazingly inventive guitar player — he was #89 on Rolling Stone's 2003 list of the 100 Greatest Guitarists — mixing up the scratchy style of punk with elements of folk and funk. As David Fricke wrote in his prescient 1984 review of Double Nickels on the Dime, "The telegraphic stutter and almost scientific angularity of singer-guitarist D. Boon's chordings and breakneck solos heighten the jazzier tangents he dares to take." Despite the band's tragic end, Watt continues to make music — he's the bassist for the Stooges — and the Minutemen have kept influencing adventurous young bands ever since.
The Minutemen's story is told in Michael Azerrad's classic indie-rock history Our Band Could Be Your Life, and in the 2004 documentary We Jam Econo. But the real story is all there in the music. Their 1983 album What Makes a Man Start Fires? is the sentimental fave — 18 songs in barely under 27 minutes, all of them funny, from the punk fury of "Bob Dylan Wrote Propaganda Songs" to the hectic funk of "Sell or Be Sold." But their most acclaimed music is Double Nickels, the 45-song double album from 1984, with the elemental day-job rage of "This Ain't No Picnic." Songs like this show why D. Boon will never be forgotten.


Former Stainton le Vale resident Lesley Tither has just published her first crime novel.
Already well known as a writer of travel memoirs under the pen name Tottie Limejuice, Lesley has written 'Baby's Got Blue Eyes' under the name of L M Krier and the book is climbing steadily through the rankings, attracting 5-star reviews.
'Baby's Got Blue Eyes' is being heralded as 'delightfully different' as its main police character is a departure from the usual hard-drinking detective with a rocky marriage.
DI Ted Darling is a non-drinker, who happens to be gay, and has his own unique way of dealing with any prejudice that brings him.
Lesley lived in Stainton for ten years whilst working in Market Rasen, Tealby, Faldingworth and Grimsby.
Her late father, John Krier Tither, was also a journalist, newspaper editor and former president of the Guild of British Newspaper Editors.
Lesley now lives in central France and writes full time.


During her eight years as First Lady, Michelle Obama racked up numerous accomplishments, and within the fashion community, she served as the ultimate representative for American style. As a private citizen, Obama is continuing her commitment to promoting the best in homegrown design talent. Making her first speaking appearance since the inauguration, Obama stepped out at the American Institute of Architects conference in Orlando, Florida, yesterday wearing a subtle color-blocked number from New York–based label Lafayette 148. With its soft ribbed knit and neutral shades of gray, white, and taupe, the look was understated and elegant. Pairing her dress with low-heeled strappy sandals, a series of delicate silver bracelets, and a pastel manicure, Obama looked regal and completely at ease.
Of course, her return to the spotlight offered more than a fashion moment. She took the opportunity to address timely issues such as gender equality in the education system and spoke of her philanthropic work, while also sharing stories of family life within the White House. Though she denied the persistent rumors that she'd be running for office sometime in the future, her appearance was a welcome reminder of her continued commitment to the American people.


text:
IT SEEMED TO CLICK INTO PLACE
James Moody
It's straight back to footballing action for defender Conor Townsend and the Iron as they prepare for the EFL Cup Round One.
League Two Notts County are the visitors to Glanford Park and the former Hull City full-back is looking for his side to emulate their second half performance against Bristol Rovers and continue their momentum going forward.
"We're were delighted first and foremost to get the season underway," he told The Iron PlayerHD.
"To get the win is what we've built up for during the whole of pre-season and in the second half we showed what we are about and hopefully that can continue. The fans responded to that and it was great. Every goal was a great finish.
"It seemed to click into place in the second half, both personally and as a team."
Following three points on Saturday, progression to round two of the EFL Cup is next on the list of priorities - along with another good performance in front of home supporters.
"We're looking to win the game, just like in every game we play in," he stated.
"It'll be a difficult test for us, but we will be up to the task. They will make it difficult for us. There's a little bit of a carrot at the end of it for us. We could get a big team which can let us test ourselves against the best.
"The morale is very good in the dressing room and that's carried on from last season's strong finish to the season. We've carried the momentum on and that's what we've spoken about. Long may than continue."
Summer signing Josh Morris netted a debut goal at the weekend, with Duane Holmes an unused substitute and Sam Mantom now returning from injury.
The former Hull City 23-year-old spoke highly of the trio who have all slotted seamlessly into the squad.
"They've all settled in well," said Townsend.
"Sam's back in training now and I don't think it'll be too long until he's back playing. It's good, they've all come in, they've all done well in training and obviously got his goal on Saturday which is a good start for him."
See much more from Graham Alexander and Conor Townsend as they preview the visit of Notts County on The Iron PlayerHD.
Tweets by @SUFCOfficial
Conor Townsend


TOYOTA CITY, Japan, Nov. 20, 2017 – Toyota Motor Corporation (Toyota) today revealed T-HR3, the company's third generation humanoid robot. Toyota's latest robotics platform, designed and developed by Toyota's Partner Robot Division, will explore new technologies for safely managing physical interactions between robots and their surroundings, as well as a new remote maneuvering system that mirrors user movements to the robot.
Organiser: Japan Robot Association (JARA) and The Nikkan Kogyo Shimbun, Ltd.
According to a UN report, Japan and the US are doing the most innovating in 3D printing, nanotech and robotics…and governments everywhere need to listen.
Japanese researchers are calling for the use of more robotics technologies in society.
The New Energy and Industrial Technology Development Organization, NEDO, has put together Japan's first white paper on robotics. It is titled the "2014 White Paper on Robotization of Industry, Business and Our Life".


[S195] International Genealogical Index, The Church of Jesus Christ of Latter-Day Saints, (www.familysearch.org;), baptism of Thos. Cartar, son of Thos Cartar, 29 Nov 1607, Great Barford, Bedford, died 13 Mar 1608 (extracted from registers) (Reliability: 2).
[S195] International Genealogical Index, The Church of Jesus Christ of Latter-Day Saints, (www.familysearch.org;), marriage of Thomas Carter and Jane Belley, 17 Oct 1603, Great Paxton, Huntingdon (extracted from registers (Reliability: 2).


text:
Assault Public Officers – Alexander Heights
Change of Her Majesty's Ambassador to Croatia Simon Thomas
Insecure housing situation drives Roma migration
March 16, 2020 3:09 pm AEDTDate Time
UH Baseball Team Quarantined as Precaution
A staff member of the University of Houston baseball team is being tested for COVID-19 after developing symptoms consistent with the virus following a team trip to Las Vegas just prior to UH suspending the season. As a precaution, the University is requiring all members of the team, coaches and support staff to self-quarantine while UH awaits test results, which could take 48-72 hours. The staff member being tested has no known exposure to anyone with COVID-19 and has not traveled internationally.
Any related, potential exposure is thought to be limited to the UH baseball team and support staff, as the University was on Spring Break when the team returned. At this time, no other baseball student-athletes, coaches or staff appear to have developed symptoms.
In order to limit the opportunity for transmission and prioritize the safety of our student-athletes, UH Athletics has taken the following additional actions:
On March 12, UH immediately suspended all Spring sports competition
A no-practice, no-workouts moratorium is extended through Sunday, March 22 to limit student-athletes from group settings and/or occupying common areas such as weight rooms and the academic center.
Staff has deactivated student-athlete electronic access to UH athletic facilities in an effort to mitigate unauthorized/unsupervised access.
Prior to this potential exposure, the University cancelled classes the week of March 16-22, with all classes resuming online March 23. The University, in conjunction with local, state and federal health authorities, has developed extensive protocols with regard to COVID-19 to mitigate spread. They include:
Classes will be offered remotely (online or alternative format) beginning March 23rd through April 4th. During this time we will assess the continuation of remote class instruction.
Students are encouraged to stay at home, but university housing will remain open.
Employees may work from home to the extent they are able to perform job functions remotely and with supervisor approval.
Facilities are being maintained using aggressive sanitization and hygiene protocols as recommended by authorities: increased custodial cleaning, hand sanitizer dispensers at all entrances, common areas and elevators.
The university has implemented international travel restrictions, travel reporting and self-quarantine protocols.
Tags:covid-19, exposure, houston, Internet, las vegas, quarantine, Safety, season, sports, Student, travel, university, University of Houston, virus, Weight


Our partnership with AVEDA allows us to deliver the highest grade of beautifying while supporting a reduced environmental footprint and an increase in our global responsibility.
Enjoy points for every product purchase, redeemable for NH2 services and AVEDA products.
Plus receive DOUBLE POINTS on your first purchase as a Pure Privilege member.


Having come recently from a 35mm top end range camera, using Zeiss lenses. To test the water I bought a XF body and a 1Q1 160 back. After just 3 months I have upgrades to a 1Q3 100mp Conclusion , you certainly get what you pay for.
Paul Richards Leeds UK wrote: Having come recently from a 35mm top end range camera, using Zeiss lenses. To test the water I bought a XF body and a 1Q1 160 back. After just 3 months I have upgrades to a 1Q3 100mp Conclusion , you certainly get what you pay for.


text:
import unittest, doctest
from test import test_support
from collections import namedtuple
import pickle, cPickle, copy
from collections import Hashable, Iterable, Iterator
from collections import Sized, Container, Callable
from collections import Set, MutableSet
from collections import Mapping, MutableMapping
from collections import Sequence, MutableSequence

TestNT = namedtuple('TestNT', 'x y z')    # type used for pickle tests

class TestNamedTuple(unittest.TestCase):

    def test_factory(self):
        Point = namedtuple('Point', 'x y')
        self.assertEqual(Point.__name__, 'Point')
        self.assertEqual(Point.__doc__, 'Point(x, y)')
        self.assertEqual(Point.__slots__, ())
        self.assertEqual(Point.__module__, __name__)
        self.assertEqual(Point.__getitem__, tuple.__getitem__)
        self.assertEqual(Point._fields, ('x', 'y'))

        self.assertRaises(ValueError, namedtuple, 'abc%', 'efg ghi')       # type has non-alpha char
        self.assertRaises(ValueError, namedtuple, 'class', 'efg ghi')      # type has keyword
        self.assertRaises(ValueError, namedtuple, '9abc', 'efg ghi')       # type starts with digit

        self.assertRaises(ValueError, namedtuple, 'abc', 'efg g%hi')       # field with non-alpha char
        self.assertRaises(ValueError, namedtuple, 'abc', 'abc class')      # field has keyword
        self.assertRaises(ValueError, namedtuple, 'abc', '8efg 9ghi')      # field starts with digit
        self.assertRaises(ValueError, namedtuple, 'abc', '_efg ghi')       # field with leading underscore
        self.assertRaises(ValueError, namedtuple, 'abc', 'efg efg ghi')    # duplicate field

        namedtuple('Point0', 'x1 y2')   # Verify that numbers are allowed in names
        namedtuple('_', 'a b c')        # Test leading underscores in a typename

        nt = namedtuple('nt', u'the quick brown fox')                       # check unicode input
        self.assert_("u'" not in repr(nt._fields))
        nt = namedtuple('nt', (u'the', u'quick'))                           # check unicode input
        self.assert_("u'" not in repr(nt._fields))

        self.assertRaises(TypeError, Point._make, [11])                     # catch too few args
        self.assertRaises(TypeError, Point._make, [11, 22, 33])             # catch too many args

    def test_instance(self):
        Point = namedtuple('Point', 'x y')
        p = Point(11, 22)
        self.assertEqual(p, Point(x=11, y=22))
        self.assertEqual(p, Point(11, y=22))
        self.assertEqual(p, Point(y=22, x=11))
        self.assertEqual(p, Point(*(11, 22)))
        self.assertEqual(p, Point(**dict(x=11, y=22)))
        self.assertRaises(TypeError, Point, 1)                              # too few args
        self.assertRaises(TypeError, Point, 1, 2, 3)                        # too many args
        self.assertRaises(TypeError, eval, 'Point(XXX=1, y=2)', locals())   # wrong keyword argument
        self.assertRaises(TypeError, eval, 'Point(x=1)', locals())          # missing keyword argument
        self.assertEqual(repr(p), 'Point(x=11, y=22)')
        self.assert_('__dict__' not in dir(p))                              # verify instance has no dict
        self.assert_('__weakref__' not in dir(p))
        self.assertEqual(p, Point._make([11, 22]))                          # test _make classmethod
        self.assertEqual(p._fields, ('x', 'y'))                             # test _fields attribute
        self.assertEqual(p._replace(x=1), (1, 22))                          # test _replace method
        self.assertEqual(p._asdict(), dict(x=11, y=22))                     # test _asdict method

        try:
            p._replace(x=1, error=2)
        except ValueError:
            pass
        else:
            self._fail('Did not detect an incorrect fieldname')

        # verify that field string can have commas
        Point = namedtuple('Point', 'x, y')
        p = Point(x=11, y=22)
        self.assertEqual(repr(p), 'Point(x=11, y=22)')

        # verify that fieldspec can be a non-string sequence
        Point = namedtuple('Point', ('x', 'y'))
        p = Point(x=11, y=22)
        self.assertEqual(repr(p), 'Point(x=11, y=22)')

    def test_tupleness(self):
        Point = namedtuple('Point', 'x y')
        p = Point(11, 22)

        self.assert_(isinstance(p, tuple))
        self.assertEqual(p, (11, 22))                                       # matches a real tuple
        self.assertEqual(tuple(p), (11, 22))                                # coercable to a real tuple
        self.assertEqual(list(p), [11, 22])                                 # coercable to a list
        self.assertEqual(max(p), 22)                                        # iterable
        self.assertEqual(max(*p), 22)                                       # star-able
        x, y = p
        self.assertEqual(p, (x, y))                                         # unpacks like a tuple
        self.assertEqual((p[0], p[1]), (11, 22))                            # indexable like a tuple
        self.assertRaises(IndexError, p.__getitem__, 3)

        self.assertEqual(p.x, x)
        self.assertEqual(p.y, y)
        self.assertRaises(AttributeError, eval, 'p.z', locals())

    def test_odd_sizes(self):
        Zero = namedtuple('Zero', '')
        self.assertEqual(Zero(), ())
        self.assertEqual(Zero._make([]), ())
        self.assertEqual(repr(Zero()), 'Zero()')
        self.assertEqual(Zero()._asdict(), {})
        self.assertEqual(Zero()._fields, ())

        Dot = namedtuple('Dot', 'd')
        self.assertEqual(Dot(1), (1,))
        self.assertEqual(Dot._make([1]), (1,))
        self.assertEqual(Dot(1).d, 1)
        self.assertEqual(repr(Dot(1)), 'Dot(d=1)')
        self.assertEqual(Dot(1)._asdict(), {'d':1})
        self.assertEqual(Dot(1)._replace(d=999), (999,))
        self.assertEqual(Dot(1)._fields, ('d',))

        n = 5000
        import string, random
        names = list(set(''.join([random.choice(string.ascii_letters)
                                  for j in range(10)]) for i in range(n)))
        n = len(names)
        Big = namedtuple('Big', names)
        b = Big(*range(n))
        self.assertEqual(b, tuple(range(n)))
        self.assertEqual(Big._make(range(n)), tuple(range(n)))
        for pos, name in enumerate(names):
            self.assertEqual(getattr(b, name), pos)
        repr(b)                                 # make sure repr() doesn't blow-up
        d = b._asdict()
        d_expected = dict(zip(names, range(n)))
        self.assertEqual(d, d_expected)
        b2 = b._replace(**dict([(names[1], 999),(names[-5], 42)]))
        b2_expected = range(n)
        b2_expected[1] = 999
        b2_expected[-5] = 42
        self.assertEqual(b2, tuple(b2_expected))
        self.assertEqual(b._fields, tuple(names))

    def test_pickle(self):
        p = TestNT(x=10, y=20, z=30)
        for module in pickle, cPickle:
            loads = getattr(module, 'loads')
            dumps = getattr(module, 'dumps')
            for protocol in -1, 0, 1, 2:
                q = loads(dumps(p, protocol))
                self.assertEqual(p, q)
                self.assertEqual(p._fields, q._fields)

    def test_copy(self):
        p = TestNT(x=10, y=20, z=30)
        for copier in copy.copy, copy.deepcopy:
            q = copier(p)
            self.assertEqual(p, q)
            self.assertEqual(p._fields, q._fields)

class ABCTestCase(unittest.TestCase):

    def validate_abstract_methods(self, abc, *names):
        methodstubs = dict.fromkeys(names, lambda s, *args: 0)

        # everything should work will all required methods are present
        C = type('C', (abc,), methodstubs)
        C()

        # instantiation should fail if a required method is missing
        for name in names:
            stubs = methodstubs.copy()
            del stubs[name]
            C = type('C', (abc,), stubs)
            self.assertRaises(TypeError, C, name)

class TestOneTrickPonyABCs(ABCTestCase):

    def test_Hashable(self):
        # Check some non-hashables
        non_samples = [list(), set(), dict()]
        for x in non_samples:
            self.failIf(isinstance(x, Hashable), repr(x))
            self.failIf(issubclass(type(x), Hashable), repr(type(x)))
        # Check some hashables
        samples = [None,
                   int(), float(), complex(),
                   str(),
                   tuple(), frozenset(),
                   int, list, object, type,
                   ]
        for x in samples:
            self.failUnless(isinstance(x, Hashable), repr(x))
            self.failUnless(issubclass(type(x), Hashable), repr(type(x)))
        self.assertRaises(TypeError, Hashable)
        # Check direct subclassing
        class H(Hashable):
            def __hash__(self):
                return super(H, self).__hash__()
            __eq__ = Hashable.__eq__ # Silence Py3k warning
        self.assertEqual(hash(H()), 0)
        self.failIf(issubclass(int, H))
        self.validate_abstract_methods(Hashable, '__hash__')

    def test_Iterable(self):
        # Check some non-iterables
        non_samples = [None, 42, 3.14, 1j]
        for x in non_samples:
            self.failIf(isinstance(x, Iterable), repr(x))
            self.failIf(issubclass(type(x), Iterable), repr(type(x)))
        # Check some iterables
        samples = [str(),
                   tuple(), list(), set(), frozenset(), dict(),
                   dict().keys(), dict().items(), dict().values(),
                   (lambda: (yield))(),
                   (x for x in []),
                   ]
        for x in samples:
            self.failUnless(isinstance(x, Iterable), repr(x))
            self.failUnless(issubclass(type(x), Iterable), repr(type(x)))
        # Check direct subclassing
        class I(Iterable):
            def __iter__(self):
                return super(I, self).__iter__()
        self.assertEqual(list(I()), [])
        self.failIf(issubclass(str, I))
        self.validate_abstract_methods(Iterable, '__iter__')

    def test_Iterator(self):
        non_samples = [None, 42, 3.14, 1j, "".encode('ascii'), "", (), [],
            {}, set()]
        for x in non_samples:
            self.failIf(isinstance(x, Iterator), repr(x))
            self.failIf(issubclass(type(x), Iterator), repr(type(x)))
        samples = [iter(str()),
                   iter(tuple()), iter(list()), iter(dict()),
                   iter(set()), iter(frozenset()),
                   iter(dict().keys()), iter(dict().items()),
                   iter(dict().values()),
                   (lambda: (yield))(),
                   (x for x in []),
                   ]
        for x in samples:
            self.failUnless(isinstance(x, Iterator), repr(x))
            self.failUnless(issubclass(type(x), Iterator), repr(type(x)))
        self.validate_abstract_methods(Iterator, 'next')

    def test_Sized(self):
        non_samples = [None, 42, 3.14, 1j,
                       (lambda: (yield))(),
                       (x for x in []),
                       ]
        for x in non_samples:
            self.failIf(isinstance(x, Sized), repr(x))
            self.failIf(issubclass(type(x), Sized), repr(type(x)))
        samples = [str(),
                   tuple(), list(), set(), frozenset(), dict(),
                   dict().keys(), dict().items(), dict().values(),
                   ]
        for x in samples:
            self.failUnless(isinstance(x, Sized), repr(x))
            self.failUnless(issubclass(type(x), Sized), repr(type(x)))
        self.validate_abstract_methods(Sized, '__len__')

    def test_Container(self):
        non_samples = [None, 42, 3.14, 1j,
                       (lambda: (yield))(),
                       (x for x in []),
                       ]
        for x in non_samples:
            self.failIf(isinstance(x, Container), repr(x))
            self.failIf(issubclass(type(x), Container), repr(type(x)))
        samples = [str(),
                   tuple(), list(), set(), frozenset(), dict(),
                   dict().keys(), dict().items(),
                   ]
        for x in samples:
            self.failUnless(isinstance(x, Container), repr(x))
            self.failUnless(issubclass(type(x), Container), repr(type(x)))
        self.validate_abstract_methods(Container, '__contains__')

    def test_Callable(self):
        non_samples = [None, 42, 3.14, 1j,
                       "", "".encode('ascii'), (), [], {}, set(),
                       (lambda: (yield))(),
                       (x for x in []),
                       ]
        for x in non_samples:
            self.failIf(isinstance(x, Callable), repr(x))
            self.failIf(issubclass(type(x), Callable), repr(type(x)))
        samples = [lambda: None,
                   type, int, object,
                   len,
                   list.append, [].append,
                   ]
        for x in samples:
            self.failUnless(isinstance(x, Callable), repr(x))
            self.failUnless(issubclass(type(x), Callable), repr(type(x)))
        self.validate_abstract_methods(Callable, '__call__')

    def test_direct_subclassing(self):
        for B in Hashable, Iterable, Iterator, Sized, Container, Callable:
            class C(B):
                pass
            self.failUnless(issubclass(C, B))
            self.failIf(issubclass(int, C))

    def test_registration(self):
        for B in Hashable, Iterable, Iterator, Sized, Container, Callable:
            class C:
                __metaclass__ = type
                __hash__ = None  # Make sure it isn't hashable by default
            self.failIf(issubclass(C, B), B.__name__)
            B.register(C)
            self.failUnless(issubclass(C, B))

class WithSet(MutableSet):

    def __init__(self, it=()):
        self.data = set(it)

    def __len__(self):
        return len(self.data)

    def __iter__(self):
        return iter(self.data)

    def __contains__(self, item):
        return item in self.data

    def add(self, item):
        self.data.add(item)

    def discard(self, item):
        self.data.discard(item)

class TestCollectionABCs(ABCTestCase):

    # XXX For now, we only test some virtual inheritance properties.
    # We should also test the proper behavior of the collection ABCs
    # as real base classes or mix-in classes.

    def test_Set(self):
        for sample in [set, frozenset]:
            self.failUnless(isinstance(sample(), Set))
            self.failUnless(issubclass(sample, Set))
        self.validate_abstract_methods(Set, '__contains__', '__iter__', '__len__')

    def test_hash_Set(self):
        class OneTwoThreeSet(Set):
            def __init__(self):
                self.contents = [1, 2, 3]
            def __contains__(self, x):
                return x in self.contents
            def __len__(self):
                return len(self.contents)
            def __iter__(self):
                return iter(self.contents)
            def __hash__(self):
                return self._hash()
        a, b = OneTwoThreeSet(), OneTwoThreeSet()
        self.failUnless(hash(a) == hash(b))

    def test_MutableSet(self):
        self.failUnless(isinstance(set(), MutableSet))
        self.failUnless(issubclass(set, MutableSet))
        self.failIf(isinstance(frozenset(), MutableSet))
        self.failIf(issubclass(frozenset, MutableSet))
        self.validate_abstract_methods(MutableSet, '__contains__', '__iter__', '__len__',
            'add', 'discard')

    def test_issue_5647(self):
        # MutableSet.__iand__ mutated the set during iteration
        s = WithSet('abcd')
        s &= WithSet('cdef')            # This used to fail
        self.assertEqual(set(s), set('cd'))

    def test_issue_4920(self):
        # MutableSet.pop() method did not work
        class MySet(collections.MutableSet):
            __slots__=['__s']
            def __init__(self,items=None):
                if items is None:
                    items=[]
                self.__s=set(items)
            def __contains__(self,v):
                return v in self.__s
            def __iter__(self):
                return iter(self.__s)
            def __len__(self):
                return len(self.__s)
            def add(self,v):
                result=v not in self.__s
                self.__s.add(v)
                return result
            def discard(self,v):
                result=v in self.__s
                self.__s.discard(v)
                return result
            def __repr__(self):
                return "MySet(%s)" % repr(list(self))
        s = MySet([5,43,2,1])
        self.assertEqual(s.pop(), 1)

    def test_Mapping(self):
        for sample in [dict]:
            self.failUnless(isinstance(sample(), Mapping))
            self.failUnless(issubclass(sample, Mapping))
        self.validate_abstract_methods(Mapping, '__contains__', '__iter__', '__len__',
            '__getitem__')

    def test_MutableMapping(self):
        for sample in [dict]:
            self.failUnless(isinstance(sample(), MutableMapping))
            self.failUnless(issubclass(sample, MutableMapping))
        self.validate_abstract_methods(MutableMapping, '__contains__', '__iter__', '__len__',
            '__getitem__', '__setitem__', '__delitem__')

    def test_Sequence(self):
        for sample in [tuple, list, str]:
            self.failUnless(isinstance(sample(), Sequence))
            self.failUnless(issubclass(sample, Sequence))
        self.failUnless(issubclass(basestring, Sequence))
        self.failUnless(isinstance(range(10), Sequence))
        self.failUnless(issubclass(xrange, Sequence))
        self.failUnless(issubclass(str, Sequence))
        self.validate_abstract_methods(Sequence, '__contains__', '__iter__', '__len__',
            '__getitem__')

    def test_MutableSequence(self):
        for sample in [tuple, str]:
            self.failIf(isinstance(sample(), MutableSequence))
            self.failIf(issubclass(sample, MutableSequence))
        for sample in [list]:
            self.failUnless(isinstance(sample(), MutableSequence))
            self.failUnless(issubclass(sample, MutableSequence))
        self.failIf(issubclass(basestring, MutableSequence))
        self.validate_abstract_methods(MutableSequence, '__contains__', '__iter__',
            '__len__', '__getitem__', '__setitem__', '__delitem__', 'insert')

import doctest, collections

def test_main(verbose=None):
    NamedTupleDocs = doctest.DocTestSuite(module=collections)
    test_classes = [TestNamedTuple, NamedTupleDocs, TestOneTrickPonyABCs, TestCollectionABCs]
    test_support.run_unittest(*test_classes)
    test_support.run_doctest(collections, verbose)

if __name__ == "__main__":
    test_main(verbose=True)

redpajama_set_name: RedPajamaGithub


You are at the cashier paying for a new item of clothing in shop. It's on a hanger.
Does the cashier ask if you want to keep the hanger, remove it, or pack the hanger along with the item? It is an interaction that takes only seconds, but its outcome has repercussions.
Increasingly, retailers are trying to hang on to their hangers – for cost and environmental reasons – so that they can be reused, or at least recycled.
Braiform supplies more than 2.5 billion hangers a year to the clothing retailer sector around the world. It operates a global reuse programme, which sees more than one billion hangers reused and 250 million recycled every year – numbers the company is hoping to increase. As it has made a commitment to reuse, it no longer owns any virgin manufacturing facilities, although it does use third party manufacturers to fulfil its supply agreements.
Braiform has long-term reuse programmes in the US and Europe, holding a 15-year relationship with the retailer Target across the US and Canada. In the UK, its reuse programme was set up in 2001, initially from a facility in Nottingham, to process hangers for BHS and Mark 1 in a 25,000sq ft workshop. This facility was closed in 2006, when it no longer had the capacity or efficiency to keep up with demand.
All hanger processing was moved to a 60,000sq ft reuse centre in Barnsley in 2005, created to process hangers for Marks & Spencer. This operation was upgraded to a 150,000sq ft site in Sheffield in 2010, which also warehouses stock to cater for the growth in reuse clients, which included Matalan, Peacocks and Mothercare.
Jim Collingham, Braiform's reuse programme manager for Europe, explains that the scheme's growth has been driven by packaging legislation, cost, efficiency and environmental benefits for retailers. As well as the UK reuse centre, Braiform has two in the US, in North Carolina and California. In other parts of the world, it uses third party firms.
The company's closed loop programme is aimed at retailers that use garment-on-hanger (GOH) supply chains. Such retailers source their hangers locally to the garment manufacturer then use the hanger as a piece of packaging, shipping it all the way through the supply chain to the shop. Retailers such as Matalan, Peacocks and Mothercare use this model. Others, including H&M, keep their hangers and put garments on to them in-store, which suits their business and supply chain models.
Because the point of sale is likely to be across the world from where clothing items are manufactured, the reuse centres send their processed hangers back to the most economically feasible place, going from west to east.
Hangers not suitable for reuse go to Braiform's recycling facilities, which separate the steel from the plastic.
Braiform has continued to develop its service offering, providing tailored solutions to retailers that best suit their needs. This is especially prevalent in Europe, where garment hangers are often viewed as an extension of the retailer's brand. This results in high numbers of different hanger styles, colours and logos – a scenario that may require a part-reuse, part-recycling solution rather than full closed loop reuse. Braiform's hanger and plaque system goes some way to negating such obstacles.
With Braiform's continued support, its programmes are retaining around 80% of hangers within the supply chain – "that's really good" – but Collingham is hoping to nudge the numbers up, which would mean greater resource efficiency and bottom line benefit for all involved.
Shop staff are trained to retain hangers and put them into a box. Labels on the boxes are scanned, so that the number of hangers returned from each store can be monitored.
Using this data, along with the store's sales data, the number of hangers 'leaked' from the shop can be calculated, so that those with high leakage can be targeted for training.
Full boxes of hangers are backhauled to the retailer's central distribution centre, where Braiform has collection trailers. Once full, they are sent to Braiform's reuse centres to be sorted, cleaned, checked for quality and repackaged.
On a daily basis, the company receives deliveries from eight to 10 retailers at its reuse centre in the UK. Any that do not meet the standard for reuse are recycled.
Braiform's biggest reuse programme is with Target in the US, processing around 450 million items a year for the retailer. Target collects in the region of 80% of its hangers and reuses a high percentage of those. Braiform's reuse centres in the US use automation that also wash the hangers because they are made of a more robust material than in the UK.
As with any product, new materials will have to be fit for purpose. Hangers may have to travel considerable distances, sometimes on bumpy roads in fairly basic vehicles in the countries where the garments are manufactured, so hangers need to be able to withstand the transportation phase of the supply chain.