def test_pop(): omd = OMD() omd.add('even', 0) omd.add('odd', 1) omd.add('even', 2) assert omd.pop('odd') == 1 assert omd.pop('odd', 99) == 99 try: omd.pop('odd') assert False except KeyError: pass assert len(omd) == 1 assert len(omd.items(multi=True)) == 2
def test_pop(): omd = OMD() omd.add('even', 0) omd.add('odd', 1) omd.add('even', 2) assert omd.pop('odd') == 1 assert omd.pop('odd', 99) == 99 try: omd.pop('odd') import pdb;pdb.set_trace() assert False except KeyError: pass assert len(omd) == 1 assert len(omd.items(multi=True)) == 2
def test_pop(): omd = OMD() omd.add("even", 0) omd.add("odd", 1) omd.add("even", 2) assert omd.pop("odd") == 1 assert omd.pop("odd", 99) == 99 try: omd.pop("odd") import pdb pdb.set_trace() assert False except KeyError: pass assert len(omd) == 1 assert len(omd.items(multi=True)) == 2
def update_projects(self, projects): to_update = OMD([(slugify(p.name), p) for p in projects]) new_list = [] for proj in self.project_list: if proj.name_slug not in to_update: new_list.append(proj) continue new_list.append(to_update.pop(proj.name_slug)) new_list.extend(to_update.values()) self.project_list = new_list
def _get_pkg_info(plist, project, repo_dir): # snap: search for snapcraft.yaml # appimage: find -iname "appimage" -type d # flatpak: find -iname "flatpak" -type d # maybe exclude test dirs, e.g., what ansible has # docker: find -name "Dockerfile" ret = {} container_stacks = OMD() for path in iter_find_files(repo_dir, CONTAINER_FILES, include_dirs=True): container_stacks.add( os.path.splitext(os.path.basename(path))[0].lower(), path) #if container_stacks: # print(container_stacks.todict()) has_docker = bool(container_stacks.pop('dockerfile', None)) container_stack = first(container_stacks.keys(), None) or ('docker' if has_docker else '') ret['container'] = container_stack # TODO: split into mac/windows/linux? for linux I'll need to look # at deb/rpm, and I'm not sure the best strategy there. rpm maybe # .spec files? might have to check inside as other tools # (pyinstaller) uses .spec, too. # freezers -> pyInstaller, cx_Freeze, py2exe, py2app, pynsist # (bbFreeze phased out, osnap/constructor not yet adopted, harder # to search for). conda and omnibus also not adopted. freezer_res_map = OMD() for freezer_name in FREEZERS: search_output = search_files(freezer_name, '*', repo_dir) if search_output: freezer_res_map.add(freezer_name, len(search_output.splitlines())) if freezer_res_map: top, top_res = sorted(freezer_res_map.items(), key=lambda x: x[1])[-1] ret['freezer'] = top return ret