def write(self, css_text=''): """ Output a human readable version of the css file in utf-8 format. **Notes:** - The file is human readable. It is not intended to be human editable as the file is auto-generated. - Pre-existing files with the same name are overwritten. :type css_text: str :param css_text: Text containing the CSS to be written to the file. :return: None **Example:** >>> css_text = '.margin-top-50px { margin-top: 3.125em }' >>> css_file = CSSFile() >>> css_file.write(css_text=css_text) """ parse_string = parseString(css_text) ser.prefs.useDefaults() # Enables Default / Verbose Mode file_path = get_file_path(file_directory=self.file_directory, file_name=self.file_name, extension='.css') with open(file_path, 'w') as css_file: css_file.write(parse_string.cssText.decode('utf-8'))
def test_get_file_path(self): file_directory = getcwd() file_name = 'blowdry' extensions = ['.css', '.min.css', '.txt', '.mp3', '.anything', '.md', '.html', '.rst'] for extension in extensions: expected_file_path = path.join(getcwd(), file_name + extension) file_path = get_file_path(file_directory=file_directory, file_name=file_name, extension=extension) self.assertEqual(file_path, expected_file_path)
def __init__(self, file_directory=getcwd(), file_name='', extension=''): self.file_directory = str(file_directory) self.file_name = str(file_name) self.file_path = get_file_path( file_directory=self.file_directory, file_name=self.file_name, extension=str(extension) ) make_directory(file_directory)
def minify(self, css_text=''): """ Output a minified version of the css file in utf-8 format. **Definition:** The term minify "in the context of CSS means removing all unnecessary characters, such as spaces, new lines, comments without affecting the functionality of the source code." *Source:* https://www.jetbrains.com/phpstorm/help/minifying-css.html **Purpose:** | The purpose of minification is to increase web page load speed. | Reducing the size of the CSS file reduces the time spent downloading the CSS file and waiting for the page to load. **Notes:** - The file is minified and not human readable. - Pre-existing files with the same name are overwritten. - Uses the cssutils minification tool. **Important:** - ``ser.prefs.useMinified()`` is a global setting. It must be reset to ``ser.prefs.useDefaults()``. Otherwise, minification will continue to occur. This can result in strange behavior especially during unit testing or in code called after this method is called. :type css_text: str :param css_text: Text containing the CSS to be written to the file. :return: None **Example:** >>> css_text = '.margin-top-50px { margin-top: 3.125em }' >>> css_file = CSSFile() >>> css_file.minify(css_text=css_text) """ parse_string = parseString(css_text) ser.prefs.useMinified() # Enable minification. file_path = get_file_path(file_directory=self.file_directory, file_name=self.file_name, extension='.min.css') with open(file_path, 'w') as css_file: css_file.write(parse_string.cssText.decode('utf-8')) ser.prefs.useDefaults() # Disable minification.