Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/Crypto/Util/_file_system.py: 78%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

9 statements  

1# =================================================================== 

2# 

3# Copyright (c) 2016, Legrandin <helderijs@gmail.com> 

4# All rights reserved. 

5# 

6# Redistribution and use in source and binary forms, with or without 

7# modification, are permitted provided that the following conditions 

8# are met: 

9# 

10# 1. Redistributions of source code must retain the above copyright 

11# notice, this list of conditions and the following disclaimer. 

12# 2. Redistributions in binary form must reproduce the above copyright 

13# notice, this list of conditions and the following disclaimer in 

14# the documentation and/or other materials provided with the 

15# distribution. 

16# 

17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 

18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 

19# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 

20# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 

21# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 

22# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 

23# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 

24# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 

25# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

26# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 

27# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 

28# POSSIBILITY OF SUCH DAMAGE. 

29# =================================================================== 

30 

31import os 

32 

33 

34def pycryptodome_filename(dir_comps, filename): 

35 """Return the complete file name for the module 

36 

37 dir_comps : list of string 

38 The list of directory names in the PyCryptodome package. 

39 The first element must be "Crypto". 

40 

41 filename : string 

42 The filename (inclusing extension) in the target directory. 

43 """ 

44 

45 if dir_comps[0] != "Crypto": 

46 raise ValueError("Only available for modules under 'Crypto'") 

47 

48 dir_comps = list(dir_comps[1:]) + [filename] 

49 

50 util_lib, _ = os.path.split(os.path.abspath(__file__)) 

51 root_lib = os.path.join(util_lib, "..") 

52 

53 return os.path.join(root_lib, *dir_comps) 

54