code: @Override
      protected void analyzeDependency(Dependency dependency, Engine engine)
              throws AnalysisException {
          final File file = dependency.getActualFile();
          final String parentName = file.getParentFile().getName();
          boolean found = false;
          final String contents = getFileContents(file);
          if (!contents.isEmpty()) {
              final Matcher matcher = VERSION_PATTERN.matcher(contents);
              if (matcher.find()) {
                  found = true;
                  final String version = getOpenSSLVersion(Long.parseLong(matcher.group(1), HEXADECIMAL));
                  dependency.addEvidence(EvidenceType.VERSION, OPENSSLV_H, "Version Constant",
                          version, Confidence.HIGH);
                  try {
                      final PackageURL purl = PackageURLBuilder.aPackageURL().withType("generic")
                              .withName("openssl").withVersion(version).build();
                      dependency.addSoftwareIdentifier(new PurlIdentifier(purl, Confidence.HIGHEST));
                  } catch (MalformedPackageURLException ex) {
                      LOGGER.debug("Unable to build package url for openssl", ex);
                      final GenericIdentifier id = new GenericIdentifier("generic:openssl@" + version, Confidence.HIGHEST);
                      dependency.addSoftwareIdentifier(id);
                  }
  
              }
          }
          if (found) {
              dependency.setDisplayFileName(parentName + File.separatorChar + OPENSSLV_H);
              dependency.addEvidence(EvidenceType.VENDOR, OPENSSLV_H, "Vendor", "OpenSSL", Confidence.HIGHEST);
              dependency.addEvidence(EvidenceType.PRODUCT, OPENSSLV_H, "Product", "OpenSSL", Confidence.HIGHEST);
          } else {
              engine.removeDependency(dependency);
          }
      }
docs: Analyzes python packages and adds evidence to the dependency.
  
  @param dependency the dependency being analyzed
  @param engine the engine being used to perform the scan
  @throws AnalysisException thrown if there is an unrecoverable error
  analyzing the dependency