advanced programming techniques of the containerand instead of storing shallow/deep copy flag it should assign suitable function to the self copy attribute depending on the flag and call the copy function in the __enter__(method the __exit__(method is slightly more involved because replacing the contents of lists is different than for sets and dictionaries--and we cannot use assignment because that would not affect the original container the class itself can be written in about thirty linesalthough you should also include doctests solution is given in atomic py which is about one hundred fifty lines including doctests create program that finds files based on specified criteria (rather like the unix find programthe usage should be find py options files_or_paths all the options are optionaland without them all the files listed on the command line and all the files in the directories listed on the command line (and in their directoriesrecursivelyshould be listed the options should restrict which files are output as follows- or --days integer discards any files older than the specified number of days- or --bigger integer discards any files smaller than the specified number of bytes- or --smaller integer discards any files bigger than the specified number of bytes- or --output what where what is "date""size"or "date,size(either way aroundspecifies what should be output--filenames should always be output- or --suffix discards any files that don' have matching suffix (multiple suffixes can be given if comma-separated for both the bigger and smaller optionsif the integer is followed by "kit should be treated as kilobytes and multipled by and similarly if followed by "mtreated as megabytes and multiplied by for examplefind py - - date,size will find all files modified today (strictlythe past hours)and output their namedateand size similarlyfind py - - png,jpg,jpeg - size will find all image files bigger than one megabyte and output their names and sizes implement the program' logic by creating pipeline using coroutines to provide matcherssimilar to what we saw in the coroutines subsectiononly this time pass (filenameos stat() -tuples for each file rather than just filenames alsotry to close all the pipeline components at the end in the solution providedthe biggest single function is the one that handles the command-line options the rest is fairly straightforwardbut not trivial the find py solution is around lines